본문 바로가기
JAVA/[Java]백준문제풀이

[백준][java] 4153 직각삼각형 문제풀이

by 이원혁 2024. 7. 9.
반응형

문제링크

 

문제
과거 이집트인들은 각 변들의 길이가 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

 

 

풀이 : 

 

직각삼각형이 되기 위해서는 피타고라스의 정리를 이용하여 밑변의제곱 + 높이의제곱 = 빗변의 제곱이다.

그리고 이 문제에서는 밑변,높이,빗변의 구분이 없기 때문에 가장 긴 변을 빗변으로 생각하고 판단한다.

 

세 숫자를 입력받을 변수와 임시로 사용할 변수를 선언하고

가장 높은 숫자를 c에 저장한다.

 

이후 a^2 + b^2 = c^2인지 계산하여 직각삼각형인지 판별한다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a, b, c;
		int temp;

		while (true) {
			a = sc.nextInt();
			if (a == 0) {
				return;
			}
			b = sc.nextInt();
			c = sc.nextInt();

			if (a > c) {
				temp = c;
				c = a;
				a = temp;
			} else if (b > c) {
				temp = c;
				c = b;
				b = temp;
			}

			if (a * a + b * b == c * c) {
				System.out.println("right");
			} else {
				System.out.println("wrong");
			}
		}
	}
}
반응형