본문 바로가기

알고리즘/백준

[백준] 5073 - 삼각형과 세 변 (JAVA/ 자바)

반응형

5073번 문제

 

1. Scanner를 이용한 방법

import java.util.Scanner;

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

    int[] a = new int[3];

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

        if(a[0] == 0 && a[1] == 0 && a[2] == 0){//마지막 줄
            break;
        }
        if(a[0] == a[0] && a[1] == a[2] && a[2] == a[0]){//세 변의 길이가 모두 같은 경우
            System.out.println("Equilateral");
        }else if(a[2] >= a[0]+a[1] || a[0] >= a[1]+a[2] || a[1] >= a[0]+a[2]){//삼각형의 조건을 만족하지 못하는 경우
            System.out.println("Invalid");
        }else if(a[0] == a[1] || a[0] == a[2] || a[1] == a[2]){//두 변의 길이만 같은 경우
            System.out.println("Isosceles");
        }else if(a[0] != a[1] && a[1] != a[2] && a[0] != a[2]){//세 변의 길이가 모두 다른 경우
                System.out.println("Scalene");
        }
    }
    sc.close();
    }
}

 

 

2. BufferedReader를 이용한 방법

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));

    int[] a = new int[3];

    while(true){
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        a[0] = Integer.parseInt(st.nextToken());
        a[1] = Integer.parseInt(st.nextToken());
        a[2] = Integer.parseInt(st.nextToken());

        if(a[0] == 0 && a[1] == 0 && a[2] == 0){//마지막 줄
            break;
        }
        if(a[0] == a[0] && a[1] == a[2] && a[2] == a[0]){//세 변의 길이가 모두 같은 경우
            System.out.println("Equilateral");
        }else if(a[2] >= a[0]+a[1] || a[0] >= a[1]+a[2] || a[1] >= a[0]+a[2]){//삼각형의 조건을 만족하지 못하는 경우
            System.out.println("Invalid");
        }else if(a[0] == a[1] || a[0] == a[2] || a[1] == a[2]){//두 변의 길이만 같은 경우
            System.out.println("Isosceles");
        }else if(a[0] != a[1] && a[1] != a[2] && a[0] != a[2]){//세 변의 길이가 모두 다른 경우
                System.out.println("Scalene");
        }
    }
    br.close();
    }
}

삼각형의 조건을 만족하지 않는 경우를 먼저 체크하고 변의 길이가 다른 경우를 체크해줘야된다. 그렇지 않으면 결과가 이예제와 다르게 나오게 된다!!

반응형