코딩테스트/자바 문제풀이

[CLASS 2: 수학] 백준 4153 직각삼각형

승요나라 2024. 10. 4. 17:26

4153번: 직각삼각형

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

 

# 코드

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();
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int[] edge = new int[3];
        for (int i = 0; i < 3; i++) {
            edge[i] = Integer.parseInt(st.nextToken());
        }

        while (edge[0] != 0 && edge[1] != 0 && edge[2] != 0) {
            Arrays.sort(edge);
            if ((edge[0]*edge[0] + edge[1]*edge[1]) == edge[2]*edge[2]) sb.append("right").append("\n");
            else sb.append("wrong").append("\n");

            // 다음 세변 입력받기
            st = new StringTokenizer(br.readLine(), " ");
            for (int i = 0; i < 3; i++) {
                edge[i] = Integer.parseInt(st.nextToken());
            }
        }
        System.out.print(sb);
        br.close();
    }
}
  • 입력에 따라 출력이 늘어나는 문제라 오랜만에 StringBuilder를 꺼냈다.
  • 출력이 여러 줄일 경우 StringBuilder를 사용해 쌓았다가 출력하면 매번 System.out.println()를 이용하는 것보다 시간복잡도가 줄어든다.
  • I love sb