반응형
문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
예제 입력6 8 1025 52 60 5 12 13 0 0 0 |
예제 출력rightwrong right |
풀이
흔히 알려진 피타고라스의 공식을 이용하면 되는 문제이다.
x^2 + y^2 = z^2 라는 공식이 성립하면 right, 아니면 wrong을 출력한다.
다만, 예제 입력에서 작은 순서대로 입력이 돼 있어서
조건에 있지는 않지만 세 번째에 빗변의 길이가 입력되는 줄 알았더니
그건 아닌 것 같다. 따라서 변의 길이가 순서 없이 들어와도
빗변만 따로 빼 주는 처리가 필요하다.
while(True):
a = list(map(int, input().split()))
z = max(a)
a.remove(max(a))
x=a[0]; y=a[1] # 빗변 외엔 순서가 상관 없다.
if x==0 and y==0 and z==0:
break
elif x**2 + y**2 == z**2:
print("right")
else:
print("wrong")
반응형
'알고리즘 연습 > 수학, 정수론, 기하' 카테고리의 다른 글
[백준 1002] 기본 수학 2 - 터렛 (0) | 2021.05.30 |
---|---|
[백준 3053] 기본 수학 2 - 택시 기하학 (0) | 2021.05.30 |
[백준 3009] 기본 수학 2 - 네 번째 점 (0) | 2021.05.30 |
[백준 1085] 기본 수학 2 - 직사각형에서 탈출 (0) | 2021.05.29 |
[백준 9020] 기본 수학 2 - 골드바흐의 추측 (0) | 2021.05.29 |