본문 바로가기
백준 코딩테스트/9.수학 2

백준 4153) 직각삼각형 (c)

by xortl98 2020. 11. 3.
728x90

www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net

1. 문제 

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

 

2.입력

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

 

3.소스

#include<stdio.h>
int main()
{
	int a = 0; 
	int b = 0; 
	int c = 0;

	while (1)
	{
		scanf("%d %d %d", &a, &b, &c);
		int a1 = a * a;
		int b1 = b * b;
		int c1 = c * c;
		if (a == 0 && b == 0 && c == 0) break;
		else
		{
			if (a1 == b1 + c1 || b1 == a1 + c1 || c1 == a1 + b1) //a,b,c 다 빗변 가능 
			{
				printf("right\n");
			}
			else
			{
				printf("wrong\n");
			}
		}
	}
}

 

4.느낀점

처음 c만 빗변으로 기준 잡고 풀었는데 틀려서 잘 생각해보니 a b c 어느 변수중 다 빗변이 될 수 있다는걸 알아서

다시 수정해서 풀었더니 풀렸다.