[Java][백준] #4153 - 직각삼각형

배수연·2024년 4월 12일

algorithm

목록 보기
23/45

🔗 백준 4153 - 직각삼각형

문제

알고리즘 분류

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

풀이

1. 입력

        while(true) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int[] arr = new int[3];
            arr[0] = Integer.parseInt(st.nextToken());
            arr[1] = Integer.parseInt(st.nextToken());
            arr[2] = Integer.parseInt(st.nextToken());

            if(arr[0] == 0) break;

2. 직각삼각형인지 판별

  • 정렬함으로써 가장 긴 변이 arr[2]에 저장됨
  • 피타고라스 정리 (가장 긴 변의 제곱 = 다른 두변을 각각 제곱하여 더한 것)
    public static boolean isPythagoras(int[] arr){
        Arrays.sort(arr);
        if((arr[2]*arr[2]) == (arr[1]*arr[1]) + (arr[0]*arr[0])){
            return true;
        } else return false;
    }

3. 결과값 출력

            if (isPythagoras(arr)) {
                sb.append("right").append("\n");
            } else sb.append("wrong").append("\n");

전체 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        while(true) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int[] arr = new int[3];
            arr[0] = Integer.parseInt(st.nextToken());
            arr[1] = Integer.parseInt(st.nextToken());
            arr[2] = Integer.parseInt(st.nextToken());

            if(arr[0] == 0) break;

            if (isPythagoras(arr)) {
                sb.append("right").append("\n");
            } else sb.append("wrong").append("\n");
        }
        System.out.println(sb);
    }
    public static boolean isPythagoras(int[] arr){
        Arrays.sort(arr);
        if((arr[2]*arr[2]) == (arr[1]*arr[1]) + (arr[0]*arr[0])){
            return true;
        } else return false;
    }
}

0개의 댓글