알고리즘 공부/백준 문제풀이

[백준] 10101 : 삼각형 외우기(JAVA)

송테이토 2022. 10. 5. 00:58

백준 10101 자바

 

삼각형 외우기

문제

창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다.

삼각형의 세 각을 입력받은 다음,

  • 세 각의 크기가 모두 60이면, Equilateral
  • 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
  • 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
  • 세 각의 합이 180이 아닌 경우에는 Error

를 출력하는 프로그램을 작성하시오.

입력

총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다.

출력

문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.

예제 입력 1

60
70
50

예제 출력 1

Scalene

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

1 초 256 MB 14495 7935 7133 55.030%

코드

import java.util.Scanner;

public class B10101 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int[] arr = new int[3];

		// 삼각형 입력받기
		int sum = 0; // 세 각의 합
		for (int i = 0; i < arr.length; i++) {
			arr[i] = sc.nextInt();
			sum += arr[i];

		}

		// 배열 내 같은 각이 있는 경우 카운트 해주기
		int cnt = 0;
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] == arr[j]) {
					cnt++;
//					System.out.println(cnt);
				}
			}
		}

		// 결과 출력
		String result = "";
		for (int i = 0; i < arr.length - 1; i++) {

			if (sum != 180) {
				result = "Error";
			} else {

				if (arr[i] == 60&& cnt == 3) {
					result = "Equilateral";
				} else if (sum == 180 && cnt == 1) {
					result = "Isosceles";
				} else if (sum == 180 && cnt == 0) {
					result = "Scalene";
				}
			}
		}
		System.out.println(result);
		sc.close();
	}

}