문제
https://www.acmicpc.net/problem/2346
풀이
순서값과 풍선값의 pair를 담고있는 deque를 이용하여 풀었다.
풍선값이 양수일때에는 맨처음 풍선은 이미 사라지고 없으므로 for 조건문에서 -1을, 음수일때에는 조건문에 abs를 씌우는것을 유의하자.
코드
#include <iostream>
#include<deque>
using namespace std;
int n;
int main() {
cin >> n;
deque<pair<int,int>> a(n);
for (int i = 1; i <= n; i++) {
a[i-1] = make_pair(i, i);
cin>>a[i-1].first;
}
while (a.size() != 0) {
int front = a.front().first;
cout << a.front().second << " ";
a.pop_front();
if (a.empty()) break;
if (front > 0) {
for (int i = 0; i < front-1; i++) {
a.push_back(a.front());
a.pop_front();
}
}
else {
for (int i = 0; i < abs(front); i++) {
a.push_front(a.back());
a.pop_back();
}
}
}
}
'Koala - 5기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[BOJ / Python] 4485번 : 녹색 옷 입은 애가 젤다지? (0) | 2022.02.17 |
---|---|
[BOJ / Python] 11286 - 절댓값 힙 (0) | 2022.02.14 |
BOJ 14713(python) : 앵무새 (0) | 2022.02.14 |
[BOJ/C++] 1931 - 회의실 배정 (0) | 2022.02.13 |
[BOJ / Swift & Python] 13975 - 파일 합치기 3 (0) | 2022.02.13 |