-
[BOJ] 4153번Algorithm/Baekjoon Online Judge 2022. 3. 16. 15:18728x90
https://www.acmicpc.net/problem/4153
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
Python3
if __name__ == '__main__': while True: side = list(map(int, input().split())) if sum(side) == 0: break side.sort() if side[0]**2 + side[1]**2 == side[2]**2: print("right") else: print("wrong")
문제에는 쓰여져 있지 않지만 피타고라스의 정리를 이용한 문제이다. A,B,C 세개의 변이 있다고 할 때 직각삼각형에서 다음과 같은 공식이 성립된다.
C^2 = A^2 + B^2 (C > A, B)
이를 사용하여 해당 문제를 해결했다. 우선 반복적으로 3개의 변을 입력받는다. 이 변의 길이를 다 합했을 때 0이 나온다면 종료조건이므로 반복문을 break한다. 만약 아니라면 위의 공식을 사용해서 직각삼각형인지 알아내야하는데 이때 가장 긴변의 길이를 알아야한다. 따라서 우선 변 길이 리스트를 오름차순으로 정렬해주어 긴변을 알아냈다. 저 공식이 성립되면 right를 출력하고 아니면 wrong을 출력한다.
728x90'Algorithm > Baekjoon Online Judge' 카테고리의 다른 글
[BOJ] 1002번 (0) 2022.03.16 [BOJ] 3053번 (0) 2022.03.16 [BOJ] 3009번 (0) 2022.03.15 [BOJ] 9020번 (0) 2022.03.14 [BOJ] 4948번 (0) 2022.03.12