본문 바로가기
Algorithm/📖Baekjoon

#1158 요세푸스 문제

by yewoneeee 2022. 5. 30.

# 문제

# 입력 및 출력

# 풀이

문제를 보자마자 큐를 써야겠다고 생각했다

k번째가 될 때까지 pop하고 다시 push해서 k번째수가 제일 앞에 올땐 pop만 진행하도록 했다

출력도 맨 마지막 출력엔 ',' 출력이 없어야 하기 때문에 맨 마지막 출력을 확인하기 위해 if문을 하나 넣어줬음

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

int main() {
	int n, k;
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		q.push(i);
	}
	cout << "<";
	while (!q.empty()) {
		for (int i = 0; i < k; i++) {
			int t = q.front();
			q.pop();
			if (i == k - 1) {
				cout << t;
				if (q.size() != 0) cout << ", ";
				break;
			}
			q.push(t);
		}
	}
	cout << ">";
}

'Algorithm > 📖Baekjoon' 카테고리의 다른 글

#2606 바이러스  (0) 2022.06.03
#1339 단어 수학  (0) 2022.06.02
#1912 연속합  (0) 2022.05.29
#1904 01타일  (0) 2022.05.28
#1932 정수 삼각형  (0) 2022.05.27

댓글