Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

[백준/BOJ] 18115 카드 놓기 본문

Programming/BOJ

[백준/BOJ] 18115 카드 놓기

he1fire 2020. 11. 20. 01:00
728x90

문제 : 18115 카드 놓기

 

18115번: 카드 놓기

수현이는 카드 기술을 연습하고 있다. 수현이의 손에 들린 카드를 하나씩 내려놓아 바닥에 쌓으려고 한다. 수현이가 쓸 수 있는 기술은 다음 3가지다. 제일 위의 카드 1장을 바닥에 내려놓는다.

www.acmicpc.net

카드를 내려놓은 순서가 주어질 때,

원래의 카드 순서를 복구하는 문제이다.

deque 자료형을 이용해 앞뒤로 집어넣은 후 출력하면 된다.


Code

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll N;
vector<ll> arr;
deque<ll> dq;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> N;
    for (int i=0;i<N;i++){
        ll a;
        cin >> a;
        arr.push_back(a);
    }
    reverse(arr.begin(), arr.end());
    for (int i=1;i<=N;i++){
        if (arr[i-1]==1)
            dq.push_front(i);
        if (arr[i-1]==2){
            ll a=dq.front();
            dq.pop_front();
            dq.push_front(i);
            dq.push_front(a);
        }
        if (arr[i-1]==3)
            dq.push_back(i);
    }
    while(!dq.empty()){
        cout << dq.front() << " ";
        dq.pop_front();
    }
    return 0;
}
728x90

'Programming > BOJ' 카테고리의 다른 글

[백준/BOJ] 1074 Z  (0) 2020.11.29
[백준/BOJ] 1138 한 줄로 서기  (0) 2020.11.23
[백준/BOJ] 2529 부등호  (0) 2020.11.19
[백준/BOJ] 2758 로또  (0) 2020.11.17
[백준/BOJ] 5972 택배 배송  (0) 2020.11.16
Comments