공부하기/백준

[Java] 백준 풀기 9366 - 삼각형 분류

XEV 2023. 12. 21. 23:17

자바 백준 9366번

브론즈 3

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

 

9366번: 삼각형 분류

입력의 첫 줄에는 테스트케이스의 개수 T(1 <= T <= 100)가 주어진다. 다음 T줄에는 각 줄에 삼각형의 세 변을 나타내는 3개의 정수 A,B,C(1 <= A,B,C <= 1,000,000)가 주어진다.

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 기하학, 사칙연산, 많은 조건 분기

 

 

 

 

 

코드 보기

import java.util.Scanner;
import java.util.Arrays;

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int T = sc.nextInt(); // 테스트 케이스 개수 입력
        
        // 각 테스트 케이스에 대해 반복
        for (int i = 1; i <= T; i++) {
            int[] sides = new int[3]; // 세 변을 저장할 배열
            
            // 세 변의 길이 입력
            for (int j = 0; j < 3; j++) {
                sides[j] = sc.nextInt();
            }
            
            // 세 변을 오름차순으로 정렬
            Arrays.sort(sides);
            
            // 케이스 번호 출력
            System.out.print("Case #" + i + ": ");
            
            // 삼각형이 유효한지 확인하고 분류하여 출력
            if (isValidTriangle(sides)) {
                classifyTriangle(sides);
            } else {
                System.out.println("invalid!");
            }
        }
    }
    
    // 삼각형이 유효한지 확인하는 메서드
    private static boolean isValidTriangle(int[] sides) {
        return sides[0] + sides[1] > sides[2];
    }
    
    // 삼각형을 분류하여 출력하는 메서드
    private static void classifyTriangle(int[] sides) {
        if (sides[0] == sides[1] && sides[1] == sides[2]) {
            // 정삼각형인 경우
            System.out.println("equilateral");
        } else if (sides[0] == sides[1] || sides[1] == sides[2]) {
            // 이등변삼각형인 경우
            System.out.println("isosceles");
        } else { 
            // 부등변삼각형인 경우
            System.out.println("scalene");
        }
    }
    
}