[백준] 10101

당당·2023년 4월 23일
0

백준

목록 보기
44/179

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

📔문제

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

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

  • 세 각의 크기가 모두 60이면, Equilateral
  • 세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
  • 세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
  • 세 각의 합이 180이 아닌 경우에는 Error 를 출력하는 프로그램을 작성하시오.

📝입력

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


📺출력

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


📝예제 입력 1

60
70
50

📺예제 출력 1

Scalene

🔍출처

Olympiad > Canadian Computing Competition & Olympiad > 2014 > CCC 2014 Junior Division 1번
-문제를 번역한 사람: baekjoon
-데이터를 추가한 사람: choiking10
-문제의 오타를 찾은 사람: doju, qja0950


🧮알고리즘 분류

  • 구현
  • 기하학

📃소스 코드

import java.util.Scanner;

public class Code10101 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner=new Scanner(System.in);
		int[] angle=new int[3];
		int total=0;
		
		for(int i=0;i<3;i++) {
			angle[i]=scanner.nextInt();
			total=total+angle[i];
		}
		
		if(total==180) {
			if(angle[0]==angle[1]){
				if(angle[0]==angle[2]) {
					System.out.println("Equilateral");
				}
				else {
					System.out.println("Isosceles");	
				}
			}
			else if(angle[1]==angle[2]) {
				System.out.println("Isosceles");	
			}
			else if(angle[0]==angle[2]) {
				System.out.println("Isosceles");
			}
			else {
				System.out.println("Scalene");
			}
			
		}
		else {
			System.out.println("Error");
		}
	}

}

📰출력 결과


📂고찰

많은 if문을 사용해서 해결했다.

만약 전체 합이 180이면, 이제 Equilateral,Isosceles,Scalene 중에 하나로 분류하고,
그렇지 않으면 Error로 분류한다.

전체 합이 180인 케이스에서,
만약 첫번째 각이랑 두번째 각이 같을 때,
첫번째 각이랑 세번째 각도 같다면 Equilateral 이고, 세번째 각이 다르다면 Isosceles이다.

만약 첫번째 각이랑 두번째 각이 다르고,
두번째 각이랑 세번째 각만 같으면 Isosceles이다.

만약 첫번째 각이랑 두번째 각이 다르고,
첫번째 각이랑 세번째 각만 같으면 Isosceles이다.

모두 해당되지 않는다는 것은 첫번째 각이랑 두번째 각도 다르고,
세번째 각도 다르다는 것으로 Scalene을 출력한다.

생각보다 경우의 수만 잘 생각하면 쉽게 풀 수 있다.

profile
MySQL DBA 신입 지원

0개의 댓글