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 |
반응형