jus981014   3년 전

** 정답코드

while True:
    a = list(map(int,input().split()))
    max_num = max(a)
    if sum(a) == 0:
        break
    a.remove(max_num)
    if a[0]**2 + a[1]**2 == max_num**2:
        print('right')
    else:
        print('wrong')

여기서 리스트로 받는 점은 이해가 되는데 왜 a.remove를 해줘야하는지 궁금합니다.

리스트로 입력 받았으면

while True:
    a = list(map(int,input().split()))
    max_num = max(a)
    if sum(a) == 0:
        break
    if a[0]**2 + a[1]**2 == a[2]**2:
        print('right')
    else:
        print('wrong')

이런 식으로 코드를 작성해도 답이 나와야하는거 아닌가요?

ehdrmsl2001   3년 전

a[2]가 가장 큰 값이라는 보장이 있나요?

5 4 3 같은 경우를 생각해보시면 될 거 같습니다.

jus981014   3년 전

아 감사합니다. 그 말을 들으니까 바로 이해가 됐습니다.

최댓값을 remove를 하게 되면 최댓값을 제외한 남은 두 값이 리스트의 0,1 번째 값이 되는거군요...

리스트의 2번째 값은 없어지는거구요! 감사합니다.

댓글을 작성하려면 로그인해야 합니다.