Memo
큐를 사용해서 계속 빼고 넣고 하면 된다!!
K - 1만큼 빼고 1개는 pop!!
Code
제출 날짜
@4/23/2021 
메모리
2148 KB
시간
64 ms
#include <iostream>
#include <queue>
int N, K;
std::queue<int> yos;
std::vector<int> res;
void output()
{
	std::cout << "<";
	for(auto& i : res)
	{
		std::cout << i;
		if (i == res[N - 1])
			break;
		std::cout << ", ";
	}
	std::cout << ">";
}
void solution()
{
	int tmp;
	while(!yos.empty())
	{
		for(int i = 0 ; i < K - 1 ; ++i)
		{
			tmp = yos.front();
			yos.pop();
			yos.push(tmp);
		}
		res.push_back(yos.front());
		yos.pop();
	}
}
void input()
{
	std::cin >> N >> K;
	for (int i = 1 ; i <= N ; ++i)
		yos.push(i);
}
void preset()
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(NULL);
	std::cout.tie(NULL);
}
int main()
{
	preset();
	input();
	solution();
	output();
}
C++
복사

