[C] 4153번: 직각삼각형

[C] 4153번: 직각삼각형
2026-03-09

문제#

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

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

입력#

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

출력#

각 입력에 대해 직각 삼각형이 맞다면 “right”, 아니라면 “wrong”을 출력한다.

풀이#

직각삼각형인지 확인하려면 가장 긴 변을 빗변으로 두고 피타고라스 정리를 확인하면 됩니다.

그래서 세 변을 오름차순으로 정렬한 뒤,

a2+b2=c2a^2 + b^2 = c^2

를 만족하는지 검사하면 됩니다.

입력이 0 0 0이면 종료합니다.

코드#

#include <stdio.h>
int main() {
int a, b, c;
while (1) {
scanf("%d %d %d", &a, &b, &c);
if (a == 0 && b == 0 && c == 0) {
break;
}
if (a > b) {
int temp = a;
a = b;
b = temp;
}
if (b > c) {
int temp = b;
b = c;
c = temp;
}
if (a > c) {
int temp = a;
a = c;
c = temp;
}
if (a * a + b * b == c * c) {
printf("right\n");
} else {
printf("wrong\n");
}
}
return 0;
}