본문 바로가기
알고리즘/SWEA

SWEA D3 14692. 통나무 자르기 (python)

by 개발하는 호랑이 2024. 2. 27.

통나무 자르기

풀이

어떻게 풀지 전체를 다 뒤지는 방식으로 해야 하나? 하다가 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')