def towerBreakers(n, m):
# Write your code here
if m==1:
return 2
elif n%2 ==0:
return 2
elif n%2 ==1:
return 1
문제에서 '최적의 방법으로 게임을 진행'한다고 했고, 균등하게 나눌 수 있는 수만큼 층을 나눈다고 설명해 탑의 층수의 약수로만 나눌 수 있는 것처럼 처음에 생각했다. 처음에는 자기 자신을 포함하지 않는 약수라고 생각했으나 탑의 층수를 나눈 결괏값인 'y'가 1을 포함할 수 있으므로 자기 자신이 아니라 약수 중 1을 제외하는 거였다.
모든 탑을 높이만큼 나누면 한 턴이 지나갈 때마다 탑 하나의 층이 1로 바뀌므로, 사실 탑의 개수가 더 중요하다. 방심했던 예외 처리는 모든 탑의 높이가 처음부터 1인 경우 무조건 두 번째 플레이어가 이기게 되는 것.