[백준Java] 14215번_세 막대

박주현·2023년 10월 23일
0

Baekjoon

목록 보기
23/24

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

1. 문제

영선이는 길이가 a, b, c인 세 막대를 가지고 있고, 각 막대의 길이를 마음대로 줄일 수 있다.

영선이는 세 막대를 이용해서 아래 조건을 만족하는 삼각형을 만들려고 한다.

각 막대의 길이는 양의 정수이다
세 막대를 이용해서 넓이가 양수인 삼각형을 만들 수 있어야 한다.
삼각형의 둘레를 최대로 해야 한다.
a, b, c가 주어졌을 때, 만들 수 있는 가장 큰 둘레를 구하는 프로그램을 작성하시오.

2. 입력

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

3. 출력

첫째 줄에 만들 수 있는 가장 큰 삼각형의 둘레를 출력한다.

4. 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Num14215 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");

        int A = Integer.parseInt(input[0]);
        int B = Integer.parseInt(input[1]);
        int C = Integer.parseInt(input[2]);
        int[] s = {A,B,C};
        Arrays.sort(s);

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

    }
}

5. 학습한 내용

가장 먼저 삼각형의 변의 길이 조건을 알고 있어야한다.

삼각형 변의 길이 조건을 설명하자면,
삼각형이 되기 위해서는 가장 긴 변이 나머지 두 변의 길이의 합보다 작아야한다.
즉, A , B , C 변 중에서 A 가 가장 긴 변이라면?
A < B + C 의 조건이 성립해야한다.


해당 문제에서 세개의 변을 배열에 담아서 sort를 사용해서 정렬한다.
또한 C의 길이가 A와 B의 길이보다 1 작아야 삼각형 길이가 최대가 될 수 있다.

profile
빌드업 막 시작하는 개발자

0개의 댓글