# weigh( ) 함수(저울질)를 이용하여
# left에서 right까지에 놓인 가짜 동전의 위치를 찾아냄
def find_fakecoin(left, right):
for i in range(left + 1, right + 1): # left + 1부터 right까지 반복
# 가장 왼쪽 동전과 나머지 동전을 차례로 비교
result = weigh(left, left, i, i)
if result = = -1: # left 동전이 가벼움(left 동전이 가짜)
return left
elif result = = 1: # i 동전이 가벼움(i 동전이 가짜)
return i
# 두 동전의 무게가 같으면 다음 동전으로
# 모든 동전의 무게가 같으면 가짜 동전이 없는 예외 경우
return -1
n = 100 # 전체 동전 개수
print(find_fakecoin(0, n - 1))
실행 결과
29