BAEKJOON 10101번: 삼각형 외우기

Kim Hyen Su·2023년 7월 6일
0

⏲️ 알고리즘

목록 보기
29/95

10101번 문제

문제

🗝️포인트

  • 배열 요소 크기 비교
    입력값의 갯수가 3개로 한정되어 있기 때문에, 배열을 사용하지 않아도 되지만 추후 다른 문제에서 여러개의 입력 값을 받게 될 경우를 고려하여 문제를 풀기 위해 배열을 사용하였다.

  • 최적화 측면에서 비효율적인 코드 이며, 최적화된 코드를 참고로 함께 포스팅하였다.

제출 코드

import java.io.*;
import java.util.*;

public class Main{

	public static void main(String[] args) throws IOException{

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		int[] N = new int[3];

		for(int i=0; i<3; i++){
			N[i] = Integer.parseInt(br.readLine());
		}

		int sum = Arrays.stream(N).sum();
		
		boolean is60 = Arrays.stream(N).allMatch(i -> i == 60);

		boolean isSame = false;

		Outter:for(int i=0; i < N.length; i++){
			for(int j=0; j < N.length; j++){
				if(i != j && N[i] == N[j]){
					isSame = true;
					if(isSame) break Outter;
				}
			}
		}

		if(is60){
			System.out.println("Equilateral");
		}else if(sum == 180 && isSame){
			System.out.println("Isosceles");
		}else if(sum == 180 && !isSame){
			System.out.println("Scalene");
		}else{
			System.out.println("Error");
		}

		br.close();
	}
}

최적화 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n1 = Integer.parseInt(br.readLine());
        int n2 = Integer.parseInt(br.readLine());
        int n3 = Integer.parseInt(br.readLine());
        if (n1 + n2 + n3 != 180) {
            System.out.print("Error");
        } else {
            if (n1 == 60 && n1 == n2 && n1 == n3) {
                System.out.print("Equilateral");
            } else if (n1 == n2 || n2 == n3 || n3 == n1) {
                System.out.print("Isosceles");
            } else {
                System.out.print("Scalene");
            }
        }
    }
profile
백엔드 서버 엔지니어

0개의 댓글