백준 5073 자바

ssong·2024년 10월 12일
0

백준

목록 보기
2/2

백준 5073 삼각형과 세 변

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

브론즈3로 간단한 기하학 문제이다. 핵심은 삼각형의 조건을 따지는 것.
삼각형의 짧은 두 변의 합이 가장 긴 변보다 커야지 삼각형이 될 수 있다. 어떻게 bufferedreader로 읽어들인 line을 정수형 배열에 저장할까 하다가 stream으로 처리했다.

package baekjoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class b3_5073 {

    public static void main(String[] args) throws IOException {
        BufferedReader  br = new BufferedReader(new InputStreamReader(System.in));

        while(true) {
            int[] arr = Arrays.stream(br.readLine().split(" "))
                    .mapToInt(Integer::parseInt)
                    .sorted()
                    .toArray();


            if(arr[0] == 0 && arr[1] == 0 && arr[2] == 0) { break;}

            if(arr[0] + arr[1] <= arr[2]){
                System.out.println("Invalid");
            }
            else if(arr[0] == arr[1] && arr[1] ==arr[2] ) {
                System.out.println("Equilateral");
            }
            else if(arr[1] == arr[2] || arr[0] == arr[1] || arr[0] == arr[2]) {
                System.out.println("Isosceles");
            }
            else{
                System.out.println("Scalene");
            }
        }

    }
}

처음에 Isoceles, 이등변 삼각형에서 arr[1] == arr[2] 만 조건문에 적었다가 자꾸 16%에서 실패가 떴다. 당연하다. 정렬한것만 생각해서 가장 긴 두 변이 같은 조건만 생각해서 반례를 놓친 것이었다. 4 4 5 이런 경우도 있는 것을 놓쳤다. 간단한 문제지만 더 꼼꼼하게 생각해야겠다.

profile
쓰는게 남는거다

0개의 댓글