[백준] 14215번 세 막대 Java 문제 풀이

2023. 3. 21. 18:25알고리즘/백준

728x90
반응형

문제풀이

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

interface Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        StringTokenizer st;

        Map<Integer, Boolean> angle = new HashMap<Integer, Boolean>();
        int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).sorted().toArray();

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

세 막대의 길이가 주어졌을 때 삼각형이 되려면 가장 긴 막대의 길이가 나머지 막대의 길이의 합보다 작아야 합니다.

 

a + b > c 조건을 만족하면 그냥 그대로 출력합니다.

 

아닐 경우는 가장 긴 막대의 길이를 줄여야 만들 수 있는 가장 큰 둘레를 만들어야 합니다.

 

a + b 보다 1만큼 작으면 삼각형의 조건을 만족시키면서 가장 큰 둘레를 만들 수 있습니다.

 

 

 

 

 

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

 

14215번: 세 막대

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

www.acmicpc.net

 

728x90
반응형