백준 BaekJoon 4153번: 직각삼각형 [Java]

2021-02-08


문제

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

입력

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

출력

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


Source Code

import java.util.Scanner;

public class TemplateA {
	public static void main(String[] args){

		Scanner scan = new Scanner(System.in);

		int [] arr = new int [3];


		loop : while(true) {
			int max = 0;
			int location = 0;
			for(int i = 0; i < 3; i++) {
				arr[i] = scan.nextInt(); 
				if(max < arr[i]) {
					max = arr[i]; // 3변중 가장 큰 변 체크
					location = i; // 해당 배열 위치 저장
				}
			}

			if(max == 0) {break loop;} 
			// max가 0이면 모든 값이 0이기 때문에 루프종료

			int sum = 0; // 작은 두변 제곱을 넣을 변수
			for(int i = 0; i < 3; i++) {
				if(i != location) {
					sum += (int) Math.pow(arr[i], 2);
					// 작은변들의 제곱을 더해줌
				}
			}

			if(Math.pow(max, 2) == sum) { 
				// 가장 긴변의 제곱이 작은 변의 제곱의 합과 같은지 체크
				System.out.println("right");
			}else {
				System.out.println("wrong");
			}

		}


	}
}

 

 출처링크 : www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net