백준 1158 c++
#include <iostream>
#include <queue>
using namespace std;
int input(int lower, int upper)
{
//cout << "input()" << endl;
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void josephus(int N, int K)
{
queue <int> circle;
int i, j, size, temp;
//원형 큐 초기화
for (i = 1; i <= N; i++)
{
circle.push(i);
}
size = circle.size();
cout << '<';
for (j = 1; j < size; j++)
{
for (i = 1; i < K; i++)
{
temp = circle.front();
circle.pop();
circle.push(temp);
}
cout << circle.front() << ", ";
circle.pop();
}
cout << circle.front();
cout << '>';
circle.pop();
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, K;
N = input(1, 5000);
K = input(1, N);
josephus(N, K);
return 0;
}