본문 바로가기

알고리즘/백준

[백준] 14215 - 세 막대 (JAVA/ 자바)

반응형

14215번 문제(1)
14215번 문제(2)

 

 

1. Scanner를 이용한 방법

import java.util.Scanner;

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

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

    if(a[0] >= a[1]+a[2]){
        a[0] = a[1]+a[2]-1;
    }
    if(a[1] >= a[0]+a[2]){
        a[1] = a[0]+a[2]-1;
    }
    if(a[2] >= a[0]+a[1]){
        a[2] = a[0]+a[1]-1;
    }
    sum = a[0]+a[1]+a[2];
    System.out.println(sum);
    sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

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

public class Main{
public static void main(String[] args)throws IOException{
    
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int[] a = new int[3];
    int sum = 0;

    StringTokenizer st = new StringTokenizer(br.readLine(), " ");

    a[0] = Integer.parseInt(st.nextToken());
    a[1] = Integer.parseInt(st.nextToken());
    a[2] = Integer.parseInt(st.nextToken());

    if(a[0] >= a[1]+a[2]){
        a[0] = a[1]+a[2]-1;
    }
    if(a[1] >= a[0]+a[2]){
        a[1] = a[0]+a[2]-1;
    }
    if(a[2] >= a[0]+a[1]){
        a[2] = a[0]+a[1]-1;
    }
    sum = a[0]+a[1]+a[2];
    System.out.println(sum);
    br.close();
    }
}

삼각형의 조건인 가장 긴 변의 길이보다 나머지 두 변의 길이의 합이 길어야된다는 점을 생각하고 풀면 된다.

반응형