알고리즘/코테 문제
[BOJ/백준 2605][C++] 줄 세우기
gyong
2022. 4. 17. 02:16
반응형
문제
https://www.acmicpc.net/problem/2605
문제 내용
학생들이 번호를 뽑는다.
이때 모두 자신의 순서 미만의 번호를 뽑는다.
세 번째 학생이 0을 뽑으면 그냥 자신의 자리에 있고, 1을 뽑는다면 한 칸 앞으로 가며, 2를 뽑으면 두 칸 앞으로 간다.
자신이 뽑은 순서만큼 앞으로 거슬러가는 것이다.
문제 풀이
나는 insert를 이용하여, 자신이 뽑은 수만큼의 위치에 저장하도록 했다.
그리고 역순으로 출력하면, 문제에서 원하는 대로 출력이 가능하다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
//입력
int n,tmp;
cin >> n;
vector<int>arr(n);
//문제 해결
for (int i = 1; i <= n; i++) {
cin >> tmp;
arr.insert(arr.begin() + tmp, i);
}
//결과 출력
for (int i = n - 1; i >= 0; i--) cout << arr[i] << ' ';
}
반응형