본문 바로가기

Coding Test/백준

백준 4153. 직각삼각형

 

공유 소스 보기

 

www.acmicpc.net

 

문제

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

 

입력

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

 

출력

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

 


 

내가 작성한 코드

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        //3, 4, 5 -> 직각 삼각형
        //직각 삼각형이면 right
        //           아니면 wrong
        
        while(true){
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
        
            if(a == 0 && b == 0 && c == 0){
                break;
            }
            
            if(c * c == a * a + b * b){
                System.out.println("right");
            }else{
                if(b * b == a * a + c * c){
                    System.out.println("right");
                }else{
                    if(a * a == b * b + c * c){
                        System.out.println("right");
                    }else{
                        System.out.println("wrong");
                    }
                }
            }
        }
    }
}

 

비교

import java.util.Scanner;
//피타고라스의 정리 이용

public class Main{
    static boolean result(int v1, int v2, int v3){
        //주어진 세 변의 길이로 3가지 경우를 모두 확인
        if(v1 * v1 + v2 * v2 == v3 * v3){
            return true;
        }else if(v1 * v1 + v3 * v3 == v2 * v2){
            return true;
        }else if(v2 * v2 + v3 * v3 == v1 * v1){
            return true;
        }
        
        //여기까지 왔으면 해당 사항이 없음을 의미
        //직사각형이 아니므로
        return false;
    }
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        while(true){
            int v1 = sc.nextInt();
            int v2 = sc.nextInt();
            int v3 = sc.nextInt();
            
            if(v1 + v2 + v3 == 0){
                break;
            }
            
            System.out.println(result(v1, v2, v3) ? "right" : "wrong");
        }
    }
}

'Coding Test > 백준' 카테고리의 다른 글

백준 15552. 빠른 A+B  (0) 2021.07.27
백준 2920. 음계  (0) 2021.03.11
백준 4344. 평균은 넘겠지  (0) 2021.03.11
백준 4673. 셀프 넘버  (0) 2021.03.11
백준 5543. 상근날드  (0) 2021.03.11