본문 바로가기
코딩테스트 준비/백준

[백준] 14215번 - 세 막대 [Java]

by mwzz6 2024. 12. 5.

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

 

[백준] 14215번 - 세 막대 [Java]
[백준] 14215번 - 세 막대 [Java]


1.  아이디어

 

삼각형을 만드려면 가장 긴변이 나머지 두변의 길이의 합 보다 짧아야 한다는 점을 활용했다.


2. 문제풀이

 

막대의 길이를 줄일 수만 있으므로 짧은 두 막대는 그대로 두고 가장 긴 막대의 길이가 나머지 두 막대의 길이의 합보다 짧으면 그냥 사용하고 길면 두 막대의 길이의 합 -1 로 줄이는 방식으로 구현했다.


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int[] arr = {Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())};
        Arrays.sort(arr);

        int a = arr[0];
        int b = arr[1];
        int c = a + b > arr[2] ? arr[2] : a + b - 1;

        System.out.println(a + b + c);
    }
}

4. 후기