# Coding/# 백준
[백준 / 24678] 돌무더기 게임 1 - Python
강현들
2022. 3. 17. 17:51
728x90
반응형
https://www.acmicpc.net/problem/24678
24678번: 돌무더기 게임 1
첫 번째 케이스에서 R의 첫 시행 이후 가능한 다음 상태는 $(0,0,2), (0,2,0), (2,0,0)$뿐이며, B는 더 이상 시행을 할 수 없으므로 이긴다. 두 번째 케이스에서 R의 첫 시행 이후 가능한 다음 상태는 다음
www.acmicpc.net
<풀이>
1. 정렬해주어 작고 큰 순서로 맞춰준다.
- 제일 작은 값과 두번 째 값의 차이를 1또는 0으로 만들어 준다.
2. 제일 큰 값을 제일 작은 값과 맞춰준다.
3. 세 값을 1과 2의 값으로 만들어 준다.
4. 유형에 따라 값을 더한다.
<전체 코드>
import sys
for _ in range(int(input())):
rock = list(map(int, sys.stdin.readline().split()))
rock.sort()
cnt = 0
# 0과 1을 맞춰줌
gap = (rock[1]-rock[0])//2
cnt += gap
rock[0] += gap
rock[1] -= gap
rock[2] -= gap
# 1과 2를 맞춰줌
gap = 2*((rock[2]-rock[0])//2)
cnt += gap
rock[2] -= gap
# 모두 1,2로 만들어줌
toOne = rock[0]-1
cnt += 3*toOne
rock[0] -= toOne
rock[1] -= toOne
rock[2] -= toOne
rock.sort()
# 항목에 따라 나눠줌
if rock == [1, 1, 1]:
cnt += 1
elif rock == [1, 1, 2]:
cnt += 3
elif rock == [1, 2, 2]:
cnt += 4
print('B' if cnt % 2 == 1 else 'R')
728x90
반응형