창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다.
삼각형의 세 각을 입력받은 다음,
Equilateral
Isosceles
Scalene
Error
를 출력하는 프로그램을 작성하시오.총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다.
문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.
60
70
50
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을 출력한다.
생각보다 경우의 수만 잘 생각하면 쉽게 풀 수 있다.