[백준] 4153 직각삼각형 - Java

Yunki Kim·2022년 12월 29일
0

백준

목록 보기
76/104
post-thumbnail

문제


링크


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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();
        while (true) {
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            int c = Integer.parseInt(st.nextToken());

            if (a == 0 && b == 0 && c == 0) break;
            if ((a * a) + (b * b) == (c * c)) sb.append("right").append("\n");
            else if ((a * a) + (c * c) == (b * b)) sb.append("right").append("\n");
            else if ((b * b) + (c * c) == (a * a)) sb.append("right").append("\n");
            else sb.append("wrong").append("\n");
        }
        System.out.print(sb);
    }
}

리뷰

피타고라스 공식이 너무 익숙해서 실수를했다.
항상 c가 빗변이다보니 c가 빗변인 경우만 생각해서 삼항연산자를 사용했더니 실패가 떴다.

a, b, c 모두 빗변이 될 수 있으므로 각각을 if문을 사용하여 판별하도록 하였다.
간단한 계산식이라 if문을 사용하였지만 복잡한 경우 각 숫자의 크기를 비교해서 큰 값을 c로 두어 a^2 + b^2 = c^2 을 하는게 좋을 것이다.

0개의 댓글