알고리즘

백준 - 4153번

joy_lee 2021. 8. 10. 20:55

직각삼각형

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

 

4153번: 직각삼각형

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

www.acmicpc.net

처음엔 예제의 입력값들이 작은 수에서 큰 수 순서대로 입력되길래 피타고라스 정리만 확인하도록 작성했더니 틀렸다고 나와서 가장 큰 수를 고르는 작업을 추가했다.

 

1
2
3
4
5
6
7
8
9
while True:
    case = list(map(int, input().split()))
    if sum(case) == 0: break
    case.sort()
    a, b, c = case
    if c ** 2 == a**2 + b**2:
        print("right")
    else:
        print("wrong")
cs

입력받은 값들을 case라는 list에 넣어서 sort()로 정렬해준다.

그러면 크기 순서대로 정렬되므로,

a, b, c = case를 통해 각각 a = case[0], b = case[1], c = case[2] 로 입력해 가장 큰 값을 c로 하여 계산할 수 있다.

(굳이 a, b, c에 입력하지 않고 case[0]을 이용해서 코드를 작성해도 상관없다.)

'알고리즘' 카테고리의 다른 글

백준 - 1002번  (0) 2021.08.11
백준 - 3053번  (0) 2021.08.11
백준 - 3009번  (0) 2021.08.10
백준 - 1085번  (0) 2021.08.10
백준 - 9020번  (0) 2021.08.06