본문 바로가기
백준 Algorithm/백준 CLASS2

[백준] CLASS2 4153 직각삼각형 - JAVA [자바]

by Echung 2023. 10. 7.

 안녕하세요. 이번에는 백준 4153 직각삼각형 문제를 풀어보려고 합니다.

 

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

 

4153번: 직각삼각형

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

www.acmicpc.net


Problem

사진 1. 문제


Solution

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;
        
        while(true) {
            st = new StringTokenizer(br.readLine(), " ");
            
            int[] arr = new int[3];
            for(int i = 0; i < 3; i++) {
                arr[i] = Integer.parseInt(st.nextToken());    
            }
            
            if(arr[0] == 0) {
                break;
            }
            
            if(checkTriangle(arr)) sb.append("right").append("\n");
            else sb.append("wrong").append("\n");
        }
       
        System.out.println(sb);
    }
    
    public static boolean checkTriangle(int[] arr) {
        // 가장 큰 길이의 변이 빗변이므로 정렬을 해준다.
        Arrays.sort(arr);
        
        if(Math.pow(arr[2], 2) == (Math.pow(arr[1], 2) + Math.pow(arr[0], 2))) {
            return true;
        }
        
        return false;
    }
}

 

 이번 문제는 직각 삼각형인지 아닌지를 찾는 문제이다. 직각 삼각형의 공식은 빗변의 제곱 = 가로의 제곱 + 세로의 제곱이라는 것을 우리는 알고 있다. 그래서 우리는 Math.pow()를 사용해서 제곱들을 구하고 직각 삼각형에서는 빗변의 길이가 가장 길기 때문에 Sort 기능을 사용해서 가장 길이가 긴 숫자를 빗변으로 놓고 문제를 풀면 쉽게 답을 도출할 수 있다.


Performance

사진 2. 실행 결과

반응형