컴굥일지
[BOJ/백준 2605][C++] 줄 세우기 본문
반응형
문제
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] << ' ';
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 10162][C++] 전자레인지 (0) | 2022.04.22 |
---|---|
[BOJ/백준 5585][C++] 거스름돈 (0) | 2022.04.21 |
[BOJ/백준 4949][C++] 균형잡힌 세상 (0) | 2022.04.16 |
[BOJ/백준 2930][C++] 가위 바위 보 (0) | 2022.04.15 |
[BOJ/백준 1181][C++] 단어 정렬 (0) | 2022.04.10 |
Comments