Koala - 11기/기초 알고리즘 스터디

[백준/Python] 7510번: 고급 수학

oyc907 2023. 7. 23. 20:28

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

 

7510번: 고급 수학

준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없

www.acmicpc.net

문제 분석

분류

 수학, 기하학, 피타고라스 정리

 

문제 설명

준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없이 줄자를 이용해 삼각형 세 변의 길이를 측정한 다음, 직각 삼각형인지 아닌지를 알아보려고 한다.

삼각형 세 변의 길이가 주어졌을 때, 직각 삼각형인지 아닌지를 구하는 프로그램을 작성하시오.

 

입력

입력의 첫째 줄에는 테스트 케이스의 개수 n이 주어진다. 각 테스트 케이스는 세 정수 1 ≤ a, b, c ≤ 40000 으로 이루어져 있다. 세 정수는 삼각형 각 변의 길이를 나타낸다.

 

출력

각 테스트 케이스마다 "Scenario #i:"를 출력한다. i는 테스트 케이스 번호이며, 1부터 시작한다. 그 다음 줄에는 입력으로 주어진 삼각형이 직각 삼각형인 경우에는 "yes", 아닌 경우에는 "no"를 출력한다. 각 테스트 케이스 사이에는 빈 줄을 하나 출력한다.

입출력 예제)

소스코드

for i in range(int(input())):
    s=sorted(list(map(int,input().split())))
    print('Scenario #{}:'.format(i+1))
    if s[0]**2 + s[1]**2 == s[2]**2:  
        print("yes\n")
    else:
        print("no\n")

문제풀이

 sorted()를 통하여 수열 입력을 오름차순으로 정렬된 list로 받는다.

이를 통해 피타고라스 정리에서 빗변에 해당하는 수를 특정할 수 있게 되고, 공식에 넣어 성립하면 yes가 출력되게 하였다.