망나니 AWOS의 일상
article thumbnail

간단하게 요약하자면

  • Equilateral :  세 변의 길이가 모두 같은 경우
  • Isosceles : 두 변의 길이만 같은 경우
  • Scalene : 세 변의 길이가 모두 다른 경우
  • Invalid : 주어진 세 변의 길이가 삼각형의 조건을 만족하지 못하는 경우(가장 긴 변 >= 나머지 두변의 합)

입력이 0 0 0이 들어가지 않는 이상 계속 돌게 만들어야된다.

 

가장 긴 변 같은 경우 세 변을 입력받고 가장 큰 값을 긴 변으로 생각하여 변수(max)를 만들어주면 되고

나머지는 비교 연사자를 쓰면 풀 수 있는 문제이다.

 

여담) 처음에 쓴 코드다. (당연히 틀렸다..)

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

처음에는 왜 안됄까 생각을 했다. 

반례가 있었다 입력이 (2, 2 ,4) 같은 게 들어올 때 조건이 되지 않는 삼각형(Invalid)이 나오는 게 정상인데 두 변이 같으니 이등변 삼각형이라고 나온 것이다.

 

그래서 조건을 추가해주고 다시 돌렸더니 성공!

 

조건문은 위에서부터 아래로 순차적으로 돌아가기 때문에 반례가 있다면 꼭 조심해야 한다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] arr = new int[3];
        int max;

        while (true) {
            arr[0] = sc.nextInt();
            arr[1] = sc.nextInt();
            arr[2] = sc.nextInt();

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

            max = -1;
            for (int j : arr) {
                if (max < j) {
                    max = j;
                }
            }
            if (arr[0] == arr[1] && arr[1] == arr[2])
                System.out.println("Equilateral");
            else if (max >= arr[0] + arr[1] || max >= arr[1] + arr[2] || max >= arr[0] + arr[2])
                System.out.println("Invalid");
            else if (arr[0] == arr[1] || arr[1] == arr[2] || arr[2] == arr[0])
                System.out.println("Isosceles");
            else if (max < arr[0] + arr[1] && max < arr[1] + arr[2] && max < arr[0] + arr[2])
                System.out.println("Scalene");
            else
                System.out.println("Invalid");
        }
    }
}

 

 

 

 

profile

망나니 AWOS의 일상

@AWOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!