Algorithm/Problem Solve
[백준 11866번] 요세푸스 문제0
아네스
2020. 12. 13. 23:00
반응형
로직대로만 풀면 되는 문제.
#include <bits/stdc++.h>
using namespace std;
int N,K;
queue<int> q;
vector<int> v;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> N >> K;
//최초 큐 세팅
for (int i = 1; i <= N; i++)
{
q.push(i);
}
while(!q.empty())
{
// K번 만큼 돌건데
for (int i = K; i > 0; i--)
{
if (i == 1) // K번째 숫자는 출력되야 하므로
{
v.push_back(q.front()); // 나중에 출력할 vector에 추가.
q.pop();
}
else { // 그 외의 연산은 앞에꺼 빼서 뒤로 넣어준다.
q.push(q.front());
q.pop();
}
}
}
for (int i = 0; i < v.size(); i++)
{
if (i == 0) cout << "<";
if (i ==v.size() - 1) cout << v[i] << ">";
else cout <<v[i]<< ", ";
}
}
반응형