[BOJ 26074] - 곰곰이와 테트리스 (애드혹, Python)

보양쿠·2022년 12월 1일
0

BOJ

목록 보기
85/260
post-custom-banner

제2회 곰곰컵 풀이

A - 치킨댄스를 추는 곰곰이를 본 임스 2 풀이
B - 붙임성 좋은 총총이 풀이
C - 곰곰이와 학식 풀이
D - 오락실에 간 총총이 풀이
E - 곰곰이와 시소 풀이
F - 외로운 곰곰이는 친구가 있어요 풀이
G - 곰곰이와 테트리스 풀이
H - 곰곰아 선 넘지마 풀이
I - 곰곰이의 식단 관리 2 풀이
J - 서커스 나이트 풀이

BOJ 26074 - 곰곰이와 테트리스 링크
(2022.12.01 기준 P5)

문제

세로 N칸, 가로 M칸인 빈 직사각형 게임판이 있고 곰곰이와 총총이가 게임을 한다.
곰곰이부터 게임을 시작하고, 각 블록마다 점수가 있으며 회전은 가능하나, 뒤집는 것은 불가능하고 각 턴마다 배치 가능한 블록을 하나씩 놓으며 점수를 얻는다.
곰곰이는 선공 페널티로 최종 점수에서 0.5점을 빼야 한다.
곰곰이와 총총이가 최적의 방법으로 게임을 한다고 했을 때, 곰곰이가 이기는지, 총총이가 이기는지 판별

알고리즘

구현할 수 있겠지만.. 게임 이론에 근거한 애드혹 문제다.
(게임을 진짜 구현한 사람도 있다고 하더라...)

풀이

출처 제2회 곰곰컵 공식 해설

진짜 대박인 듯 하다.
저 풀이를 대회 때 어떻게 생각을 해내야 하는 건가...

게임판 가운데를 곰곰이가 먼저 점령을 하고
후에 이루어지는 총총이의 블록 배치를 곰곰이가 점대칭하여 따라하기만 하면 된다.

1 * 2, 2 * 1 게임판은 8번 블록 2개만 놓을 수 있으므로 총총이가 이기게 되고, 나머지는 전부 곰곰이가 이기게 된다는 것이다.
(해설 없었으면 난 절대 못풀었을 듯)

코드

N, M = map(int, input().split())
print('ChongChong') if (N == 1 and M == 2) or (N == 2 and M == 1) else print('GomGom')
# 블록 점수는 입력받을 필요가 없다.
profile
GNU 16 statistics & computer science
post-custom-banner

0개의 댓글