글 작성자: 취업중인 피터팬
728x90

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

 

5073번: 삼각형과 세 변

각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.

www.acmicpc.net

 

문제 설명

 

삼각형의 길이를 받아서 그 길이에 대한 어떤 삼각형인지 출력하는 문제입니다.

조건문과 정렬로 문제를 해결할 수 있습니다.

 

문제 풀이

 

사실 삼각형이 아닌 값만 빼면 나머지는 조건문에 and, or 연산자만 알고 있다면 무난하게 문제를 해결할 수 있습니다.

삼격형이 아닌 값을 찾기 위해서는 제일 작은 2개의 길이를 찾아야 하는데 이때 정렬을 사용해야 합니다.

하지만 이 문제에서는 속도 제안이 걸려있거나 어떤 정렬을 사용하라는 조건이 없음으로 그냥 직관적으로 하나하나 정렬을 할 생각입니다. 굳이 알고리즘을 선택하자면 삽입 정렬 쪽에 가깝습니다.. 알고리즘만 가져오고 temp로 구현한 삽입정렬? 정도가 될 거 같습니다.

이 문제에서는 필요 없지만 공부하고 싶다면 아래 블로그를 참고하시길 바랍니다.

https://kkungchan.tistory.com/287

 

자바로 구현한 삽입 정렬 알고리즘

삽입 정렬은 Target 인덱스를 정해서 올바른 인덱스에 삽입해 주는 정렬 방식입니다. 삽입 정렬의 특징으로는 1. 비교 정렬입니다. 2. 제자리 정렬입니다. 3. 안정 정렬입니다. 1. 비교 정렬 : 서로

kkungchan.tistory.com

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
		//000 일때가지 반복
        while(true){
            int one = sc.nextInt();
            int two = sc.nextInt();
            int three = sc.nextInt();
            //000일 때 반복 종료
            if(one==0 && two==0 && three==0){
                break;
            }

			//정렬
            int temp = 0;
            if(one > two){
                temp = one;
                one = two;
                two = temp;
            }
            if(one > three){
                temp = one;
                one = three;
                three = temp;
            }
            if(two > three){
                temp = two;
                two = three;
                three = temp;
            }
			
            //삼각형 비교
            if (one + two <= three) {
                System.out.println("Invalid");
            } else if(one == two && two == three){
                System.out.println("Equilateral ");
            } else if (one == two || one == three || two == three) {
                System.out.println("Isosceles ");
            } else if (one != two && one != three && two != three) {
                System.out.println("Scalene ");
            }
        }
    }
}