BOJ - 직각삼각형(Python)
문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
예제 입력
예제 출력
✍ 코드
while 1:
# (1)
a, b, c = map(int, input().split())
# (2)
if a == 0 and b == 0 and c == 0:
break
# (3)
list_value = []
# (4)
list_value.append(a)
list_value.append(b)
list_value.append(c)
# (5)
list_value = sorted(list_value)
# (6)
pow_1 = pow(list_value[0], 2)
pow_2 = pow(list_value[1], 2)
pow_3 = pow(list_value[2], 2)
# (7)
if pow_3 == pow_1 + pow_2:
print("right")
else:
print("wrong")
while 1:
# (1)
a, b, c = map(int, input().split())
# (2)
if a == 0 and b == 0 and c == 0:
break
# (3)
list_value = []
# (4)
list_value.append(a)
list_value.append(b)
list_value.append(c)
# (5)
list_value = sorted(list_value)
# (6)
pow_1 = pow(list_value[0], 2)
pow_2 = pow(list_value[1], 2)
pow_3 = pow(list_value[2], 2)
# (7)
if pow_3 == pow_1 + pow_2:
print("right")
else:
print("wrong")
(1) : a, b, c 변수에 입력
(2) : while문 종료 조건
(3) : list_value라는 리스트 생성
(4) : a, b, c를 차례대로 list_value에 append하기
(5)
- list_value 오름차순 정렬
- 그렇게 하는 이유는 a b c 순대로 정렬되어 있다는 보장이 없기 때문
- 왜 이렇게 해야 하는지는 직각삼각형의 원리를 보면 이해할 수 있음
(6)
- 각 list_value의 요소 제곱한 것을 pow_1 ~ pow_3에 차례대로 할당
- 참고로 list_value[2]가 입력 요소 중 가장 큰 값에 해당
(7)
- 직각삼각형의 공식은 (대각선의 길이의 제곱) = (가로의 제곱) + (세로의 제곱)이기 때문에, 해당 공식에 부합하면 right를, 그렇지 않은 경우에는 wrong을 출력
📝 결과
😃 느낀점
- 초등학교 또는 중학교 때 배웠던 직각삼각형 공식이 생각이 났다. 이걸 아직까지 기억한 것이 더 신기했다. (대각선의 길이의 제곱) = (가로의 제곱) + (세로의 제곱) 공식을 기억할 수 있었기에 이 문제를 풀 수 있었다.
👍 Irish의 모든 코드 보기
-> Irish Github
Author And Source
이 문제에 관하여(BOJ - 직각삼각형(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@irish/BOJ-직각삼각형Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)