> >
본문 바로가기

Algorithm/BOJ

[BOJ] 18115번 카드 놓기

#include <bits/stdc++.h>
#define FASTIO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0)
using namespace std;

const int MAX = 1000005;
int arr[MAX];

int main(){
    FASTIO;
    
    deque<int> dq;
    int n; cin >> n;
    for (int i = 0; i < n; i++) dq.push_back(i);
    
    for (int i = n; i > 0; i--){
        int num; cin >> num;
        if (num == 1) {
            int idx = dq.front();
            dq.pop_front();
            arr[idx] = i;
        }
        else if (num == 2){
            int idx = dq.front();
            dq.pop_front();
            int idx2 = dq.front();
            dq.pop_front();
            dq.push_front(idx);
            arr[idx2] = i;
        }
        else{
            int idx = dq.back();
            dq.pop_back();
            arr[idx] = i;
        }
    }
    
    for (int i = 0; i < n; i++) cout << arr[i] << ' ';
    return 0;
}

 

덱을 이용하는 문제였습니다.

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

[BOJ] 14891번 톱니바퀴  (3) 2024.07.14
[BOJ] 2504번 괄호의 값  (0) 2024.07.10
[BOJ] 31802번 주기 함수 (Easy)  (0) 2024.07.10
[BOJ] 15276번 Palindrmoic Password  (0) 2024.07.10
[BOJ] 30445번 행복 점수  (0) 2024.07.10