티스토리 뷰

문제 링크

줄 세우기

문제 요약

  • 첫째 줄에는 학생의 수가 주어지고 둘째 줄에는 줄을 선 차례대로 학생들이 뽑은 번호가 주어진다.
  • 학생의 수가 100 이하이고, 학생들이 뽑는 번호는 0 또는 자연수이며 학생들이 뽑은 번호 사이에는 빈 칸이 하나씩 있다.
  • 학생들이 처음에 줄을 선 순서대로 1번부터 번호를 매길 때, 첫째 줄에 학생들이 최종적으로 줄을 선 순서를 그 번호로 출력한다.
  • 학생 번호 사이에는 한 칸의 공백을 출력한다.list
  • 입력 값이 0이면 서 있는 자리 그대로, x면 x칸 앞에 서게 된다.
  • list에 메소드인 insert를 활용하여 문제를 해결하였다.문제 해답

#include <iostream>
#include <list>
using namespace std;

int main(void) {
    int N, x;
    list <int> l;
    cin >> N;
    cin >> x;
    l.push_back(1);
    for (int i = 2;i <= N;i++) {
        cin >> x;
        auto lbegin = l.begin();
        for (int i = 0;i < x;i++)
            lbegin++;
        l.insert(lbegin, i);
    }
    for (auto i = l.rbegin(); i !=l.rend();i++)
        cout << *i << ' ';
    cout << endl;
    return 0;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함