[백준 2164] 카드 2

alsry._.112·2023년 10월 8일
0

백준

목록 보기
78/102

🔗문제 풀러가기
단계별로 풀어보기 단계 16의 7번째 문제이다.

문제 분석

Queue컨네이너를 사용하여 문제를 해결하였다.

코드

#include <iostream>
#include <queue>
using namespace std;

int main()
{
	int n;
	cin >> n;

	queue<int> q;

	for (int i = 1; i <= n; i++)
	{
		q.push(i);
	}

	while (q.size() > 1)
	{
		q.pop();
		q.push(q.front());
		q.pop();
	}

	cout << q.front();
}

해석

  1. 1부터 입력받은 수까지의 수를 q에 저장한다.
  2. q의 가장 앞에 있는 수를 지운다.
  3. q의 가장 앞에 있는 수를 가장 뒤로 옮긴다.
  4. 위 두 작업을 수가 하나가 남을때까지 반복한다.
  5. 이렇게 얻은 마지막 수를 출력하면 끝!
profile
소통해요

0개의 댓글