컴굥일지

[BOJ/백준 2605][C++] 줄 세우기 본문

알고리즘/코테 문제

[BOJ/백준 2605][C++] 줄 세우기

gyong 2022. 4. 17. 02:16
반응형

문제

https://www.acmicpc.net/problem/2605

백준 2605
백준 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] << ' ';
}
반응형
Comments