본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #4153: 직각삼각형

https://www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

www.acmicpc.net

 

[정답]

import sys

while True:

    string=sys.stdin.readline()

    s_list=list(map(int,string.split()))

    if sum(s_list)==0: #0 0 0이 입력되면 끝나야 하므로 합이 0일때 끝내준다.
        break
    max_num=max(s_list) #s_list에서 가장 큰 값을 max_num으로 정의

    s_list.remove(max_num)

    if max_num**2==s_list[0]**2+s_list[1]**2:
        print('right')
    else:
        print('wrong')


'0 0 0' 을 입력하였을 때 프로그램 종료

→ 다른 시각으로 보면, 배열의 합이 0일 때 프로그램 종료

 

가장 큰 값과 나머지 값들을 구별

→ 가장 큰 값을 변수로 지정하고 배열에서 제거하여, 나머지 값들만 배열에 남게 한다.

    그러면 쉽게 계산이 가능하다.