본문 바로가기

[C언어] 백준온라인/* 수학 2

[C 언어] 백준 4153. 직각삼각형


4153. 직각삼각형 (누르면 해당 문제로 이동)

피타고라스의 정리에 대해 배우는 문제

 

제약사항)

시간 : 1 초

메모리 : 128 MB

 

문제)

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인 것을 알아냈다.

주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

 

입력)

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0 이 입력된다.

각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

 

출력)

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

 

입출력 예제

입력 출력
6 8 10
25 52 60
5 12 13
0 0 0
right
wrong
right

 


 

풀이 순서)

피타고라스의 정리를 이용한 단순 계산 문제입니다.

1. 입력 받은 세 값 중 최댓값을 찾습니다.

2. (최댓값^2) = (나머지 중 하나^2) + (나머지 중 또 다른 하나^2) 을 만족하면 직각삼각형입니다.

 


 

소스코드 및 결과 (C)

#include <stdio.h>

int main() {
	int max, i, tmp = 0;
	int in[3];

	while (1) {
		scanf("%d %d %d", &in[0], &in[1], &in[2]);

		if (in[0] == 0 && in[1] == 0 && in[2] == 0)
			break;

		max = 0;
		tmp = 0;
		for (i = 0; i < 3; i++)
			if (in[i] > max)
				max = in[i];

		for (i = 0; i < 3; i++)
			if (in[i] != max)
				tmp += in[i] * in[i];

		if (max*max == tmp)
			printf("right\n");
		else
			printf("wrong\n");
	}

	return 0;
}

 

메모리 : 1112 KB

시간 : 0 ms

코드길이 : 433 B