Notice
Recent Posts
Recent Comments
Link
승코딩당당당
[C++] 백준 2164: 카드2 본문
문제
[C++] 백준 2164: 카드2 SILVER 4
https://www.acmicpc.net/problem/2164

접근 방법
이 문제는 카드가 놓인 상태에서 맨 위 카드를 버리고, 그 다음 카드를 맨 아래로 옮기는 과정을 반복하여
마지막에 남는 카드의 번호를 구하는 문제이다.
이러한 동작은 선입선출(FIFO) 구조와 정확히 일치하므로 queue 자료구조를 사용하면 문제를 직관적으로 해결할 수 있다.
- 카드는 항상 앞에서 제거(pop) 되고
- 일부 카드는 뒤로 추가(push) 된다
코드
#include <iostream>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n = 0;
cin >> n;
queue<int> Q;
for (int i = 1; i <= n; i++)
Q.push(i);
while (Q.size() > 1)
{
Q.pop();
int t = Q.front();
Q.pop();
Q.push(t);
}
cout << Q.front();
}'PS > BOJ' 카테고리의 다른 글
| [C++] 백준 5073: 삼각형과 세 변 (0) | 2025.12.28 |
|---|---|
| [C++] 백준 23971: ZOAC 4 (2) | 2025.12.28 |
| [C++] 백준 1253: 좋다 (1) | 2025.12.26 |
| [C++] 백준 1260: DFS와 BFS (0) | 2025.12.26 |
| [C++] 백준 2644: 촌수계산 (2) | 2025.12.24 |