본문 바로가기

CodingTest Exam/[C++] Algorithm Study

72. 공주 구하기(큐 자료구조로 해결) (it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비) ★☆☆☆☆

#include <stdio.h>
#include <queue>

using namespace std;

int main()
{
	int n, k, val, count = 0;
	scanf("%d %d", &n, &k);
	
	queue<int> Q;
	
	for(int i = 1; i <= n; i++)
		Q.push(i);
		
	while(!Q.empty())
	{
		val = Q.front(); // Q에서 차례에 해당되는 왕자 번호 꺼내기
		Q.pop();
		
		count++; // 번호 외치기
		if(count == k) // 그 번호가 k 번이라면 그 왕자는 다시 넣지 않는다
			count = 0;
		else
			Q.push(val); // k 번이 아니라면 다시 맨 뒤로 넣기
	}
	
	printf("%d", val);
	
	return 0;
}