3 분 소요

🗒️ 1158번) 요세푸스 문제

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

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

	int N, K;
	cin >> N >> K;

	list<int> nums;
	for (int n = 1; n < N + 1; n++)
		nums.push_back(n);

	cout << "<";
	list<int>::iterator it = nums.begin();
	while (nums.size() != 0)
	{
		for (int k = 1; k < K; k++)
			if (++it == nums.end())
				it = nums.begin();

		cout << *it;
		if (nums.size() != 1)
			cout << ", ";

		it = nums.erase(it);
		if (it == nums.end()) 
			it = nums.begin();
	}

	cout << ">";
	return 0;
}

카테고리:

업데이트:

댓글남기기