문제) n장의 카드를 카드가 한장 남을 때까지 제일 위에 있는 카드를 버리고 그 다음으로 위에 있던 카드를 맨 아래로 옮기는 작업을 반복한다. 마지막으로 남게 되는 카드를 구하는 프로그램을 만들어보자.
입력은 정수 N이 첫째줄에 주어진다.
시간제한은 2초, 메모리 제한은 128MB 이다.
큐의 선입선출로 쉽게 구현할 수 있는 문제다.
더보기
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
queue<int> que;
cin >> n;
for (int i = 1; i <= n; i++)
{
que.push(i);
}
while (que.size() > 1)
{
que.pop();
que.push(que.front());
que.pop();
}
cout << que.front();
return 0;
}
'공부 > 백준 풀어보기' 카테고리의 다른 글
[백준] 2750 수 정렬하기 - C++ (0) | 2024.11.16 |
---|---|
[백준] 11286 절댓값 힙 - C++ (2) | 2024.11.15 |
[백준] 17298 오큰수 - C++ (1) | 2024.11.13 |
[백준] 1874 스택 수열 - C++ (0) | 2024.11.11 |
[백준] 12891 DNA 비밀번호 - C++ (0) | 2024.11.10 |