1주차(자료구조) - [C++]백준1158 요세푸스
문제
예제 입력
코드
#include <iostream>
#include <queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, K;
cin >> N >> K;
queue<int> Queue;
for (int i = 1; i <= N; i++) {
Queue.push(i);
}
int num = 1;
cout << "<";
while (true)
{
if (num % K == 0) {
if (Queue.size() == 1)
cout << Queue.front();
else
cout << Queue.front() << ", ";
}
else {
Queue.push(Queue.front());
}
num++;
Queue.pop();
if (Queue.empty()) {
break;
}
}
cout << ">" << "\n";
}
설명
C++ STL(표준 템플릿 라이브러리)에서 큐를 사용하여 입력 받은 순서마다 출력하고 아직 순서가 아니면 큐 맨끝으로 다시 삽입합니다. 그리고 제외하여 원형큐처럼 구현했습니다.
<queue>
-queue<자료형> 변수명; : 큐 자료구조 사용