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


[알고리즘풀이]

자료구조 queue를 이용해서 k번 째마다 제거(pop)를 진행하고, 1 ~ k-1번 원소는 다시 뒤로 삽입(push)을 진행한다.

queue(큐) 설명 : https://travelbeeee.tistory.com/7?category=807507

#include<iostream>
#include<queue>
#include<string>

using namespace std;

int main(void) {
	int n, m;
	queue<int> q;
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		q.push(i);
	cout << "<";
	while (!q.empty()) {
		for (int i = 0; i < m - 1; i++) {
			int temp = q.front();
			q.pop();
			q.push(temp);
		}
		if (q.size() == 1)
			cout << q.front() << '>';
		else
			cout << q.front() << ", ";
		q.pop();
	}
}

 

'Problem Solving > BOJ' 카테고리의 다른 글

[BOJ] 10866 - 덱  (0) 2019.09.17
[BOJ] 1966 - Printer Queue  (0) 2019.09.17
[BOJ] 2164 - 카드2  (0) 2019.09.17
[BOJ] 10845 - 큐  (0) 2019.09.17
[BOJ] 17436 - 소수의 배수  (0) 2019.09.08

+ Recent posts