공부하기/백준

[Java] 백준 풀기 4153 - 직각삼각형

XEV 2023. 6. 5. 23:29

자바 백준 4153번

브론즈 3

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

 

4153번: 직각삼각형

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

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 기하학, 피타고라스 정리

 

 

 

 

 

문제 풀기

입력받은 세 숫자가 0, 0, 0 이면  0 + 0 + 0 == 을 만족하여 while loop 를 빠져나가게 한다.

그 외의 30,000 보다 작은 양의 정수에 대해서는 isRightTriangle() 메서드를 실행시킨다.

isRightTriangle() 메서드는 크기 정렬이 되지 않은 세 수를 Array 에 입력 받아 오름차순정렬을 한다.

정렬한 Array 에서 각 숫자를 빼내고 Math.pow(side, 2) 를 사용하여 피타고라스 정리가 만족하는지 확인한다.

피타고라스 정리를 만족하는 경우에는 "right" 를 반환하고 그렇지 않으면 "wrong" 을 반환한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;
import java.util.Arrays;

public class Main {
    
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);

        while (true) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            
            if (a + b + c == 0) break;
            
            String result = isRightTriangle(a, b, c);
            
            System.out.println(result);
        }
    }
    
    public static String isRightTriangle (int a, int b, int c) {
        int[] sideArr = {a, b, c};
        
        Arrays.sort(sideArr);
        
        if (Math.pow(sideArr[0], 2) + Math.pow(sideArr[1], 2) == Math.pow(sideArr[2], 2)) {
            return "right";
        }
        return "wrong";
    }
    
}