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

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

 

14215번: 세 막대

첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.

www.acmicpc.net

 

문제 설명

 

삼각형 세 변의 조건과 정렬를 할 수 있으면 어렵지 않게 풀 수 있는 문제입니다.

 

문제 풀이

 

삼각형에 3변의 조건은 a+b>c 즉 짧은 두 변의 합이 긴 변의 길이보다 길어야 된다는 것입니다.

그렇다면 먼저 가장 짧은 두 변을 찾고 그 2변보다 같거나 클 경우 가장 긴 막대를 줄여서 삼각형을 맞춰줘야 합니다.

가장 긴 변을 두변의 합의 -1까지 줄이고 둘레를 구하게 되면 결국 (a+b)*2-1이 되게 됩니다.

정렬은 배열로 값을 받은 후 Arrays.sort()을 사용해 정렬하였습니다.

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int[] triangle = new int[3];

        triangle[0] = sc.nextInt();
        triangle[1] = sc.nextInt();
        triangle[2] = sc.nextInt();

        Arrays.sort(triangle);

        if(triangle[0]+triangle[1]>triangle[2]){
            System.out.println(triangle[0]+triangle[1]+triangle[2]);
        }else{
            System.out.println((triangle[0]+triangle[1])*2-1);
        }
    }
}