본문 바로가기
백준/자료구조

백준 2164 c++ "카드2" -PlusUltraCode-

by PlusUltraCode 2024. 8. 19.

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

 

[필자 사고]

자료구조 문제이다. 그 중에서도 큐를 이용하면 쉽게 문제를 풀 수있다.

 

여기서 중요한 점은 카드를 버리는 시점에 큐의 사이즈이다.

 

카드를 버리는 시점에 큐의 사이즈가 1이 될 경우 게임을 중단하고 답을 출력하면 문제를 쉽게 해결 할 수 있다.

 

[소스 코드]

#include <iostream>
#include <vector>
#include <queue>

using namespace std;

queue<int> pq;
int N;

void Input() {
	cin >> N;

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

bool checkSize() {
	if (pq.size() == 1)return true;
	return false;
}

void GameStart() {

	while (pq.size() != 1) {
		pq.pop();  //첫 번째 수 버리기
		if (checkSize())return;
		int firstNum = pq.front();
		pq.push(firstNum);
		pq.pop();
		if (checkSize())return;

	}
}

int main(void) {
	Input();
	GameStart();
	cout << pq.front();
}

'백준 > 자료구조' 카테고리의 다른 글

백준 17298 c++ "오큰수" -PlusUltraCode-  (0) 2024.08.17