맛있는감귤

BOJ : 2346 풍선 터뜨리기 본문

알고리즘/백준 알고리즘

BOJ : 2346 풍선 터뜨리기

맛있는감귤 2017. 1. 19. 14:09

문제 : https://www.acmicpc.net/problem/2346

github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/2346.cpp

deque를 이용해 원형 큐처럼 풀었다.

풍선을 터뜨리고 나온 수만 큼 이동하고 해당 수 전까지의 풍선은 다시 push하고 타겟 풍선은 pop만 했다.

#include <iostream>
#include <deque>
using namespace std;

deque<pair<int, int>> q;
pair<int, int>p;
int N;
int main(){
    cin>>N;
    
    for(int i=1;i<=N;i++){
        int a;
        cin>>a;
        q.push_back(make_pair(i, a));
    }
    
    int pos=0, target, a;
    
    p = q.front();
    q.pop_front();
    cout<<p.first;
    target=p.second;
    while(!q.empty()){
        pos=0;
        if(target>0){
            
            while(++pos < target){
                p = q.front(); q.pop_front();
                q.push_back(p);
            }
            p = q.front(); q.pop_front();
            
        }
        else {
            while(--pos > target){
                p = q.back(); q.pop_back();
                q.push_front(p);
            }
            p = q.back(); q.pop_back();
            
        }
        a = p.first;
        target = p.second;
        cout<<" "<<a;
    }
}


'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

BOJ : 2477 참외밭  (0) 2017.01.19
BOJ : 2458 키 순서  (0) 2017.01.19
BOJ : 2302 극장 좌석  (0) 2017.01.19
BOJ : 2292 벌집  (0) 2017.01.19
BOJ : 2206 벽 부수고 이동하기  (2) 2017.01.19