반응형
deque을 이용하면 쉽게 풀 수 있는 문제였습니다.
풀이방법
풍선을 터뜨렸을 때 만약 움직이려는 숫자가 양수라면 먼저 터뜨리고 움직인다는 점을 고려해 1을 뺀 만큼 이동시킵니다. 음수라면 해당값에 음수를 취한 값만큼 이동시키면 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n;
int moveBalloon[1001];
deque <int> balloon;
vector <int> ans;
int main(){
cin >> n;
for(int i = 0; i < n; i++) cin >> moveBalloon[i];
for(int i = 1; i <= n; i++) balloon.push_back(i);
for(int i = 0; i < n; i++){
ans.push_back(balloon.front());
int moving = moveBalloon[balloon.front()-1] ;
balloon.pop_front();
if(moving > 0){
for(int i = 0; i < moving - 1; i++){
balloon.push_back(balloon.front());
balloon.pop_front();
}
}else{
for(int i = 0; i < -moving; i++){
balloon.push_front(balloon.back());
balloon.pop_back();
}
}
}
for(int i = 0; i < ans.size(); i++) cout << ans[i] << ' ';
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 프로그래머스(고득점 kit - 스택/큐) : 주식가격 답 (0) | 2021.02.01 |
---|---|
(C++) - 프로그래머스(월간 코드 챌린지 시즌 1) : 삼각 달팽이 답 (0) | 2021.02.01 |
(C++) - 백준(BOJ) 5928번 : Contest Timing답 (0) | 2021.01.26 |
(C++) - 백준(BOJ) 3986번 : 좋은 단어 (0) | 2021.01.20 |
(Python) - 백준(BOJ) 2338번 : 긴자리 계산 답 (0) | 2021.01.20 |