본문 바로가기

알고리즘/BOJ

2164번

2164번 - 카드2


deque 를 이용해서 구현했다. 카드 맨위를 없애는 것은 deque의 front 를 pop 하고,


다시 앞장의 카드를 뒤에 넣는 것은, deque 의 front 를 back에 push 하면 된다.


내가 왜 deque 로 했을까.. queue 로 하는게 오히려 더 편해보인다..


<정답 코드>


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
31
32
#include<iostream>
#include<deque>
 
using namespace std;
 
int main()
{
    int n;
    cin >> n;
    deque<int> card(n);
    for (int i = 0; i < n; i++)
    {
        card[i] = i + 1;
    }
 
    while (true)
    {
        if (card.size() == 1)
        {
            break;
        }
 
        card.pop_front();
        int f = card.front();
        card.pop_front();
        card.push_back(f);
    }
 
    cout << card[0];
 
    return 0;
}
cs


반응형

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

1244. 최대 상금  (0) 2018.03.06
1074번  (0) 2018.02.28
9517번  (0) 2018.02.27
1526번  (0) 2018.02.27
1551번  (0) 2018.02.27