개발자 미니민의 개발스터디

[백준 JAVA] 14215번 풀이 - 세 막대

by mini_min

package baekjoon;

import java.util.Scanner;

/**
 *  세 막대
 *  a,b,c 막대를 조합해서 만들 수 있는 가장 큰 삼각형의 둘레를 출력한다.
 *  각 막대는 양의 정수이며, 각 막대의 길이를 마음대로 줄일 수 있다. 
 *  넓이는 양수여야 한다. 
 * 
 */
public class _14215 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		// 삼각형 = 두 변의 합이 다른 한 변보다 커야 한다.
		// 삼각형 = a+b > c, b+c > a, a+c > b 
		while ( (a + b) <= c )
		{
			--c;
			
		}
		
		while ( (b + c) <= a )
		{
			--a;
			
		}
		
		while ( (a + c) <= b )
		{
			--b;
			
		}
		
		System.out.println(a+b+c);
		
		
		sc.close();

	}

}

 

풀이

삼각형의 성립 조건만 알면 쉽게 풀기 가능 🔥🔥🔥🔥🔥

삼각형 성립 조건 : "두 변의 합이 한 변의 길이보다 커야 한다."

 

그리고, 이 문제는 설명에 힌트가 숨어 있다..

"각 막대의 길이는 줄일 수 있다. "

즉, 길이는 작아질 수 있다. (= 두 변의 합이 한 변의 길이보다 작으면.... 한 변의 길이를 줄이면 되지!)

 

그래서 두 변의 합이 한 변의 길이보다 작으면 , 그 한 변의 길이를 -1 씩 해줬다 😏

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기