통나무 자르기
풀이
어떻게 풀지 전체를 다 뒤지는 방식으로 해야 하나? 하다가 N이 10^9까지 있어서 전체를 다 뒤지는 방식이면, 2중 for문으로는 해결되지 않을 것이라 생각되었기에 테스트 케이스를 관찰했다.
감이 와서 시도해 보니 PASS 되었다.
먼저 시도하는 사람이 Alice이므로 N이 짝수이면, Alice가 이기고, 홀수라면 Bob이 이기는 게임이 된다.
먼저 마지막 2를 손대는 사람이 이기는데, 그게 짝수일 때는 처음 손댄사람, 홀수일 때는 뒤에 손 댄 사람 이기 때문이다.
따라서 아래처럼 풀었다.
T = int(input())
people = ["Alice", "Bob"]
for testcase in range(1, T+1):
N = int(input())
if N %2 == 0:
print(f'#{testcase} Alice')
else:
print(f'#{testcase} Bob')
'알고리즘 > SWEA' 카테고리의 다른 글
SWEA D3 6485. 삼성시의 버스 노선 (python) (0) | 2024.02.27 |
---|---|
SWEA D3 13428. 숫자 조작 (python) (1) | 2024.02.27 |
SWEA D3 16002. 합성수 방정식 (python) (0) | 2024.02.26 |
SWEA D3 18662. 등차수열 만들기 (python) (1) | 2024.02.26 |
SWEA D3 16910. 원 안의 점 (python) (0) | 2024.02.25 |