※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24393번 문제인 조커 찾기이다.

문제는 아래 링크를 확인하자.

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

 

24393번: 조커 찾기

중앙대학교에 다니는 수현이는 머신러닝을 공부하던 중 심심하여 트럼프 카드를 가지고 놀고 있다. 언젠가 유튜브에서 타짜 기술을 사용하는 영상을 보고 따라하고 싶어진 수현이는 카드 덱의

www.acmicpc.net

카드는 총 27장이고 이 카드를 100만번 섞으므로, 카드를 섞는 과정을 카드 한 장씩 움직여 구현하는 것으로도 문제를 충분히 해결할 수 있다는 걸 관찰할 수 있다.

 

스택을 이용하여 문제의 상황에 맞게끔 카드를 한장씩 움직여주자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <stack>
using namespace std;

stack<int> A, B, C;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	A.push(1);
	for (int i = 0; i < 26; i++) A.push(0);
	int T; cin >> T;
	while (T--) {
		for (int i = 0; i < 14; i++) {
			C.push(A.top()); A.pop();
		}
		for (int i = 0; i < 13; i++) {
			B.push(A.top()); A.pop();
		}
		int total = 0, sign = 1;
		while (total < 27) {
			int x; cin >> x;
			total += x;
			if (sign) {
				while (x--) {
					A.push(C.top()); C.pop();
				}
			}
			else {
				while (x--) {
					A.push(B.top()); B.pop();
				}
			}
			sign ^= 1;
		}
	}
	int ans = 27;
	while (A.top() == 0) {
		A.pop();
		ans--;
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 24391 // C++] 귀찮은 해강이  (0) 2022.02.19
[BOJ 24228 // C++] 젓가락  (0) 2022.02.18
[BOJ 24396 // C++] 푸앙이와 별  (0) 2022.02.16
[BOJ 24397 // C++] 말해 xor NO!  (0) 2022.02.15
[BOJ 24392 // C++] 영재의 징검다리  (0) 2022.02.14

+ Recent posts