C++

C++ 1158 요세푸스 문제, 요세푸스 문제 0 [큐]

CE : 하랑 2024. 10. 14. 20:54

 

 

코드

#include <iostream>
#include <queue>
#include <string>

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

	std::string result = "<";
	std::queue<int> Q;

	int n,k;
	
	std::cin >> n>> k;

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

	while (!Q.empty())
	{

		for (int i = 0; i <k-1; i++)
		{
			int num = Q.front();
			Q.pop();
			Q.push(num);
		}

		if (Q.size() == 1)
		{
			int num = Q.front();
			result += std::to_string(num);
			result += ">";
			Q.pop();
		}
		else
		{
			int num = Q.front();
			result += std::to_string(num);
			result += ", ";
			Q.pop();
		}
	}

	std::cout << result;
}