⌨️CS-PS/백준_기하

[Baekjoon/백준][4153][C/C++] 직각삼각형

미르의 블로그 2023. 2. 6. 20:06
728x90
반응형
『목차』
0. 개요

1. 문제
2. 풀이
3. 코드

0. 개요

수학, 기하학, 피타고라스 정리에 관한 문제.

1. 문제

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

 

4153번: 직각삼각형

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

www.acmicpc.net

[문제]

[Baekjoon/백준][4153][C/C++] 직각삼각형
[Baekjoon/백준][4153][C/C++] 직각삼각형

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

[입력]

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

[출력]

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

[예제 입력 1]

6 8 10
25 52 60
5 12 13
0 0 0

[예제 출력 1]

right
wrong
right

2. 풀이

피타고라스의 정리는 다음과 같다.

[Baekjoon/백준][4153][C/C++] 직각삼각형
[Baekjoon/백준][4153][C/C++] 직각삼각형

이때, 입력값으로 세 변의 길이가 주어진다. 하지만, 제일 긴 변(빗변에 해당하는 변)에 해당하는 값이 마지막에 입력될지, 중간에 입력될지, 처음에 입력될지 알 수 없으므로, 피타고라스의 정리를 각각의 변을 기준으로 하여 3번 반복해야 한다.

3. 코드

#pragma warning (disable:4996)
#include <stdio.h>

int main(int argc, char* argv[]) {
	int a, b, c; 
	
	while (true) {
		scanf("%d %d %d", &a, &b, &c);
		if (a == 0 && b == 0 && c == 0)
			break;

		if (a * a == b * b + c * c || b * b == a * a + c * c || c * c == a * a + b * b)
			printf("right\n");
		else
			printf("wrong\n");
	}

	return 0;
}
728x90
반응형