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

 

1158번: 요세푸스 문제

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

www.acmicpc.net

코드 설명

큐 자료구조 연습 문제였다. 큐에 전부 넣어준 후 2번은 빼고 뒤에 다시넣고 3번째 차례일때 출력하고 빼주는 간단한 문제였다.

 

소스코드

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main() {
	int n, k;
	cin >> n >> k;
	queue<int> q;

	for (int i = 1; i <= n; i++) {

		q.push(i);
	}
	cout << "<";
	while (!q.empty()) {

		for (int i = 0; i < k - 1; i++) {
			int temp = q.front();
			q.pop();
			q.push(temp);
		}
		if (q.size() == 1) {

			cout << q.front() << ">";
			q.pop();
		}
		else {
			cout << q.front() << ", ";
			q.pop();
		}
	}



	return 0;
}

'알고리즘 공부 > 백준' 카테고리의 다른 글

[백준] 단어 정렬 (1181/ C++)  (0) 2021.05.29
[백준] 14425 문자열 집합(c++)  (0) 2021.05.18
[백준] 9663 N-Queen (C++)  (0) 2021.05.17
[백준] 9935번 문자열 폭발 C++  (0) 2021.05.16
[백준] 미로탐색(C++/2178번)  (0) 2021.05.06

+ Recent posts