Deff_Dev

[백준] 카드 1 (C++) 본문

코딩테스트/백준

[백준] 카드 1 (C++)

Deff_a 2024. 10. 14. 15:49

문제

 

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

풀이

이 문제는 1 ~ N 까지 이루어진 숫자들에서 특별한 규칙을 부여하여 첫 번째 숫자들을 출력 후 삭제하는 문제이다.

 

여기서 주어진 규칙은 다음과 같다.

  1. 첫 번째 요소를 출력 후 삭제한다.
  2. 이후 첫 번째 요소가 된 숫자를 맨 뒤로 옮긴다.
  3. 숫자들이 남지 않을 때까지 반복한다.

난 Queue를 이용하여 해당 문제를 풀이했다.

#include <iostream>
#include <queue>

using namespace std;

int main() {
	int n;
	cin >> n;

	queue <int> q;

	for (int i = 1; i <= n; i++) {
		q.push(i);
	}
	
	while (true) {
		cout << q.front() << " ";
		q.pop();

		if (q.empty())
			break;

		int pushValue = q.front();
		q.pop();
		q.push(pushValue);
	}

	return 0;
}

'코딩테스트 > 백준' 카테고리의 다른 글

[백준] 설탕 배달 (C++)  (0) 2024.10.27
[백준] 2252번 줄 세우기 (C++)  (0) 2024.10.16
[백준] 2607번 비슷한 단어 (C++)  (0) 2024.09.26
[백준] 2156번 포도주 시식 (C++)  (0) 2024.09.10
[백준] 1026번 보물 (C++)  (0) 2024.09.06