해결방법
큐를 사용하는 문제이다.
N장의 카드를 입력하고, 큐의 사이즈가 1이 아니라면 카드를 뽑고, 그 다음 카드를 큐에 집어넣고, 이 시점에서 큐의 카드가 1장이라면 반복문을 탈출하고 아니라면 다시 카드를 뽑는 식으로 반복문을 돌려준다.
정답 코드
#include <iostream>
#include <queue>
using namespace std;
int main()
{
queue<int> Q;
int N;
cin >> N;
for (int i = 1; i <= N; i++)
{
Q.push(i);
}
while (Q.size() != 1)
{
Q.pop();
Q.push(Q.front());
if (Q.size() == 1)
break;
Q.pop();
}
cout << Q.front() << endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 괄호 9012 (0) | 2025.01.04 |
---|---|
BOJ - 큐 10845 (0) | 2025.01.04 |
BOJ - 숫자카드 2 10816 (0) | 2025.01.04 |
BOJ - 요세푸스 문제 0 11866 (0) | 2025.01.04 |
BOJ - 팩토리얼 0의 개수 1676 (0) | 2025.01.04 |