본문 바로가기
작업/Problem Solving

백준 4153(직각삼각형) 파이썬(python) 해결

728x90

문제

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다.

주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

입력

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다.

각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

출력

각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

 


해답을 구하기 위해서 "피타고라스의 정리 공식"을 적용합니다.

 

직각삼각형 피타고라스 정리

 

 

예제 중 6, 8, 10의 경우를 보겠습니다.

 

 

6과 8이 각각 x와 y라고 했을 때 10이 z가 되며 계산이 일치하기 때문에 직각삼각형입니다.

 

공식을 성립 시키기 위해서는 입력된 3개의 값 중에서 가장 큰 값이 z가 되어야 합니다.

사용자 입력 시에 x, y, z를 순서대로 입력한다는 가정이 없습니다.

그래서 값들을 오름차순 정렬하여 가장 큰 값이 마지막 인덱스에 위치하도록 했습니다. 

 


python3 소스코드

import math
import sys

while(1):
    sideValue = list(map(int, input().split()))

    if sum(sideValue) == 0:
        sys.exit()
      
    sideValue.sort()

    if sideValue[2] == math.sqrt(sideValue[0]**2 + sideValue[1]**2):
        print("right")
    else:
        print("wrong")

 

 

직각삼각형의 빗변(대각) 길이는 math 라이브러리의 제곱근 함수인 sqrt()를 이용하였습니다.

문제에서 제시된 입력이 모두 0일 경우에 마지막 케이스(종료)이기 때문에 exit() 함수를 적용했습니다.

 

 

- 끝 -

 

 

 

728x90