카테고리 없음

[백준 - 4153][Java]직각삼각형[브론즈]

SeongJo 2022. 5. 18. 22:51
반응형

 

이 포스팅은 자바 8버전으로 풀이가 됐습니다.

 

문제

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

이미지 출처 : 백준https://www.acmicpc.net/problem/4153

입력

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

출력

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

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// 4153
public class Main {
    public static void main(String[] args)throws IOException {
 
        try {
            BufferedReader rd = new BufferedReader(new InputStreamReader (System.in));
            for(;;) {
                String test[] = rd.readLine().split(" ");
                int A = Integer.parseInt(test[0]);
                int B = Integer.parseInt(test[1]);
                int C = Integer.parseInt(test[2]);
 
                if(A==0 && B==0 && C==0) {
                    break;
                }
                if((Math.pow(A,2)+Math.pow(B,2)==Math.pow(C,2)) || (Math.pow(B,2)+Math.pow(C,2)==Math.pow(A,2))
                        || (Math.pow(A,2)+Math.pow(C,2)==Math.pow(B,2))) {
                    System.out.println("right");
                }else {
                    System.out.println("wrong");
                }
            }
        }
        catch(IOException e) {
            System.out.println("error");
        }
    }
}
 
 

풀이

직각 삼각형의 공식을 활용하여 문제를 해결하면 된다. 이때 직각 삼각형을 만족시키는지 확인하기 위해서는 A^2+B^2=C^2가 직각 삼각형을 만족시키는 조건이 된다.

파이썬의 경우 **를 하면 지수승을 해결할 수 있지만 자바에서 지수승은 Math.pow() 함수를 사용하여 문제를 해결한다.

Math.pow() 함수는 변수, 반복할 지수 값을 입력하는 것이므로 Math.pow(변수, 2)를 하여 A, B, C의 조건 중 하나를 만족하는 경우 직각 삼각형이 만족하게 된다.

 

 

 


짧은 포스팅 읽어주셔서 감사드립니다.

오타나 문제가 있는 경우 댓글 부탁드리겠습니다.

다음 포스팅 때 뵙겠습니다!

반응형