C언어

boj 백준 1158번 요세푸스 문제 한번에 통과 !

mcdn 2020. 8. 12. 16:31
반응형
#include <iostream>
#include <list>
using namespace std;


int main(void)
{
	int n, k;
	cin >> n >> k;
	list <int> numlist;

	for (int i = 0; i < n;i++)
		numlist.push_back(i + 1);
	int cnt = 0;
	int temp = 0;
	cout << "<";
	while (!numlist.empty())
	{
		cnt++;
		if (numlist.size() == 1)
		{
			cout << numlist.front() << ">";
			numlist.pop_front();
			break;
			
		}
		if (cnt % k == 0)
		{
			cnt = 0;
			cout << numlist.front() << ", ";
			numlist.pop_front();

		}
		else
		{
			temp = numlist.front();
			numlist.push_back(temp);
			numlist.pop_front();
		}
	}
	return (0);
}

계속 옮기는 식으로 함 

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

반응형