반응형
문제
https://www.acmicpc.net/problem/4153
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
코드
while True:
nums = list(map(int, input().split()))
if sum(nums) == 0:
break
max_num = max(nums)
nums.remove(max(nums))
if nums[0]**2 + nums[1]**2 == max_num**2:
print("right")
else:
print("wrong")
설명
직각 삼각형의 변의 길이는 피타고라스의 정리를 이용하여 구할 수 있다.
삼각형의 직각을 이루는 변의 각 길이의 제곱을 더하면 나머지 변의 길이의 제곱과 동일한 값이 나오게 된다.
Ex) 3,4,5의 변의 길이의 경우 3**2 + 4**2 = 5**2 -> 직각 삼각형
우선 입력이 0 0 0 이 아닌 경우 무한하게 지속되어야 하므로 while 문으로 무한 루프를 돌려주고,
숫자의 합이 0이라면 세 숫자 모두 0이 입력되었으므로, 반복문을 종료한다.
그렇지 않은 경우에는 숫자 중 가장 큰 수의 값을 제곱한 수가 나머지 두 수를 각각 제곱한 값의 합과 같으면,
right를 출력하고 아니면 wrong를 출력한다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 9461: 파도반 수열 (0) | 2023.02.14 |
---|---|
[파이썬, Python] 백준 24416: 피보나치 수 1 (0) | 2023.02.13 |
[파이썬, Python] 백준 3009: 네 번째 점 (0) | 2023.02.09 |
[파이썬, Python] 백준 1085: 직사각형에서 탈출 (0) | 2023.02.08 |
[파이썬, Python] 백준 11478: 서로 다른 부분 문자열의 개수 (0) | 2023.02.07 |