[백준 JAVA] 14215번 풀이 - 세 막대
by mini_minpackage 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 씩 해줬다 😏
'매일매일 알고리즘 공부' 카테고리의 다른 글
[백준 JAVA] 24263번 풀이 - 알고리즘 수행시간2 (0) | 2023.07.18 |
---|---|
[백준 JAVA] 24262번 풀이 - 알고리즘 수업 1 (0) | 2023.07.16 |
[백준 JAVA] 5073번 풀이 - 삼각형과 세 변 (0) | 2023.07.13 |
[백준 JAVA] 10101번 풀이 - 삼각형 외우기 (0) | 2023.07.12 |
[백준 JAVA] 9063번 풀이 - 대지 (0) | 2023.07.12 |
블로그의 정보
개발자 미니민의 개발로그
mini_min