#include <iostream>
#include <deque>
using namespace std;
int card(int n) {
deque<int> card;
//순서대로 입력
for (int i=1;i <= n;i++) {
card.push_back(i);
}
//카드가 2개 이상일 때
while (card.size() > 1) {
card.pop_front();
int front = card.front();
card.pop_front();
card.push_back(front);
}
return card.front();
}
int main() {
int n;
cin >> n;
int result = card(n);
cout << result;
return 0;
}
double ended queue를 쓰면 된다. 쉽게 풀기 완료!
첫번째 카드를 pop해서 없애면, 앞에 있는 카드를 뒤로 보낼 수 있다. 이렇게 계속해서 반복.
'백준' 카테고리의 다른 글
[백준/C++] 2840: 행운의 바퀴 (0) | 2025.03.06 |
---|---|
[백준/C++] 4949: 균형잡힌 세상 (0) | 2025.02.26 |
[백준/C++] 10757: 큰 수 A+B (0) | 2025.02.24 |
[백준/C++] 11478: 서로 다른 부분 문자열의 개수 (0) | 2025.02.18 |
[백준/C++] 1431: 시리얼 번호 (0) | 2025.02.18 |