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 이런 경우도 있는 것을 놓쳤다. 간단한 문제지만 더 꼼꼼하게 생각해야겠다.