본문 바로가기
백준

[백준] 4153번 : 직각삼각형 – JAVA [자바]

by Hongwoo 2022. 7. 31.
반응형

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

 

4153번: 직각삼각형

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 4153번 직각삼각형은 브론즈 3 난이도의 수학 문제이다. 이 문제에서는 한 삼각형의 세 개의 변의 길이가 주어지고 그 삼각형이 직각삼각형인지 아닌지를 출력하면 된다. 직각삼각형이면 right을 출력하고 아니면 wrong을 출력하면 된다.

 

이 문제는 피타고라스의 정리를 이용해서 풀 수가 있다. 직각삼각형의 변 a, b, c가 있다고 하고 c가 가장 큰 변일 때 a² + b² = c²이다.

 

이 문제에서는 어떤 변이 가장 큰 변인지는 주어지지 않아서 우선 가장 큰 변을 구한다. 가장 큰 변이 c라고 하면 a*a + b*b가 c*c이면 right를 출력해주면 된다.

 

자세한 코드는 밑에 있는 코드를 참고하면 되겠다.

 


  • 코드

 

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));
        int a, b, c;
        StringTokenizer st;
        StringBuilder sb = new StringBuilder();
        while (true) {
            st = new StringTokenizer(br.readLine());
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            c = Integer.parseInt(st.nextToken());
            if (a == 0 && b == 0 && c == 0) break;
            if (a > b && a > c) {
                int temp = a;
                a = c;
                c = temp;
            }
            if (b > c && b > a) {
                int temp = b;
                b = c;
                c = temp;
            }
            if (a*a + b*b == c*c) {
                sb.append("right\n");
            } else {
                sb.append("wrong\n");
            }
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글