[C]백준 4153 : 직각삼각형

Alal11·2023년 2월 26일
0
post-thumbnail

출처

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


문제

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


입력

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


출력

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


예제 입출력


알고리즘 분류

  • 수학
  • 기하학
  • 피타고라스 정리

➡️문제 분석

직각삼각형이 되는 공식인 피타고라스의 정리를 이용한다.

직각삼각형에서 빗변 길이의 제곱은 다른 두 변의 길이의 제곱의 합과 같다.


➡️코드(⭕)

#include <stdio.h>

int main()
{
	int a, b, c, max;

	while (1)
	{
		scanf("%d %d %d", &a, &b, &c);

		if (a == 0 && b == 0 && c == 0)
			break;

		if (a < c && b < c)
		{
			max = c;
			c = 0;
		}
		else if (a < b && c < b)
		{
			max = b;
			b = 0;
		}
		else
		{
			max = a;
			a = 0;
		}

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

➡️코드 분석

  1. 무한 반복문으로 각 변의 길이 a, b, c를 입력받는다.

  2. 만약 a, b, c 모두 0이라면 무한반복문을 빠져나간다.

  3. if문으로 크기 비교를 통해 최댓값을 구해서 max에 따로 넣어주고, 해당하는 원래 값은 0으로 처리해준다.

  4. 만약, 가장 긴 변인 max 제곱이 다른 두 변의 제곱과 같다면 직각삼각형이므로 right를 출력, 다르다면 wrong을 출력한다.


➡️end

곧 있으면 개강이다... 으악 개강하면 더 바빠질텐데 그래도 최대한 열심히 해보자 파이팅!!👊👊

0개의 댓글