Programing/백준, 프로그래머스(C++)
[C++][백준 2164] 카드2
hye3193
2025. 1. 7. 16:52
https://www.acmicpc.net/problem/2164
제출 코드
#include <iostream>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
queue<int> cards;
for (int i = 1; i <= n; i++)
cards.push(i);
while (cards.size() > 2)
{
cards.pop();
cards.push(cards.front());
cards.pop();
}
cout << cards.back();
}
1부터 n까지의 수를 큐에 넣고, 문제에서 말한대로 그대로 구현하도록 코드를 작성하였다
남은 카드의 개수가 2장 이하가 되기 전까지 맨 위 카드를 버리고, 맨 위 카드를 맨 아래에 넣는 걸 반복하다가
while문을 탈출하고 맨 아래 카드를 출력한다(2장 남아있는 경우 맨 위 카드는 버려야 하기 때문에)