본문 바로가기
백준

[11866] 요세푸스 문제 0

by kmyobin 2023. 1. 26.


https://www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

큐 문제이다.

 

K번째에 나오는 수를 계속해서 버리면서 수열을 출력하는 것이다.

N=7, K=3일 때

이 과정을 코드로 구현하면 아래와 같다.

#include <iostream>
#include <queue>
using namespace std;

int N, K;
queue<int> myqueue;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	cin >> N >> K;

	for (int i = 1; i <= N; i++) {
		myqueue.push(i);
	}

	int idx = 0;
	cout << "<";
	while (1) {
		if (myqueue.empty())break;
		for (int i = 1; i <= K; i++) {
			int temp = myqueue.front();
			myqueue.pop();			
			if (i == K) {
				idx++;
				cout << temp;
				if (idx < N) {
					cout << ", ";
				}
			}
			else { myqueue.push(temp); }
		}
	}
	cout << ">";
}

'백준' 카테고리의 다른 글

[1021] 회전하는 큐  (0) 2023.01.30
[1966] 프린터 큐  (0) 2023.01.26
[1874] 스택 수열  (0) 2023.01.19
[9012] 괄호  (0) 2023.01.17
[10986] 나머지 합  (0) 2023.01.16

댓글