본문 바로가기
백준 코딩테스트/실버

2164) 카드2 (C++)

by xortl98 2022. 5. 5.
728x90

 출처 

https://www.acmicpc.net/problem/2164

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 내 풀이 

#include<iostream>
#include<queue>

using namespace std;

queue<int> q;
int N = 0;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> N;

	// 숫자만큼 일단 대입
	for (int i = 1; i <= N; i++)
	{
		q.push(i);
	}

	while (q.size() != 1)
	{
		q.pop();
		int front = q.front();
		q.pop();
		q.push(front);
	}
	cout << q.front();
}

 해설

큐의 맨 앞에 있는 수를 빼고 그 다음 수는 뒤로 보내는걸 반복하여 사이즈가 1이 되면 해당 큐에 있는 값을 정답으로

출력하게 했다.

 느낀점 

큐에 대해 점점 익숙해지는것 같다. 

 

'백준 코딩테스트 > 실버' 카테고리의 다른 글

2751) 수 정렬하기 2 (C++)  (0) 2022.05.07
10866) 덱 (C++)  (0) 2022.05.07
18258) 큐 2 (C++)  (0) 2022.05.04
1920) 수 찾기 (C++)  (0) 2022.05.01
11053) 가장 긴 증가하는 부분 수열 (C++)  (0) 2022.04.30