본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 백준 4153번 직각삼각형 Java

by 방구석개발자 2021. 4. 29.
반응형

이번 문제는 피타고라스 정의로 풀어 낼수 있다. 세변중 작은 두변을 a , b 가장큰변을 c 라고 할때 

a*a+b*b=c*c를 만족하면 직각 삼각형이다.  그리고 문제를 잘 보면 '변의 길이'만 나와 있지 어떤게 큰지 작은지 알 수 없다. 따라서 정렬을 한 후 공식에 대입하여 풀어야 한다.


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

public class Main {

    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        while(true){
            StringTokenizer strToken=new StringTokenizer(br.readLine()," ");
            int[] input=new int[3];
            for(int i=0;i<input.length;i++){
                input[i]=Integer.parseInt(strToken.nextToken());
                if(input[0]==0) return;
            }
            Arrays.sort(input);
            System.out.println(checkRightTriangle(input[0],input[1],input[2]));
        }
    }

    public static String checkRightTriangle(int a,int b,int c){
        if((a*a+b*b)==(c*c)) return "right";
        else return "wrong";
    }
}

 

감사합니다.

반응형

댓글