본문 바로가기

알고리즘

[백준] 11866번 요세푸스 문제 0 C++ 문제 풀이

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

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

문제 풀이

자료구조 Queue를 이용해 K번째 숫자를 출력한다.

계속 틀리게 나와서 뭐가 문제인지 몰랐는데 쉼표 뒤의 띄어쓰기를 고려하지 않았다

문제 출력을 잘 확인해야겠다.

 

소스코드

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

queue<int> que;

int main() {
	int N, K;
	cin >> N >> K;

	for (int i = 1; i <= N; i++) {
		que.push(i);
	}

	cout << "<";
	while (!que.empty()) {
		for (int i = 1; i < K; i++) {
			que.push(que.front());
			que.pop();
		}
		
		cout << que.front();
		que.pop();
		if (que.size() != 0) 
			cout << ", ";
		else 
			cout << ">";
	}
}