자바 백준 14215번
브론즈 3
https://www.acmicpc.net/problem/14215
문제 보기
분류: 수학, 구현, 기하학
문제 풀기
세 개의 막대를 오름차순 정렬하여 짧은 두 개와 긴 한 개의 막대기를 비교한다.
짧은 두 개의 합이 긴 하나보다 크면 삼각형을 이루기 때문에 세 개의 합을 출력한다.
그렇지 않고 짧은 두 개의 합이 긴 것보다 작으면 긴 막대기를 잘라서 삼각형을 만들어야 한다.
이때, 삼각형 둘레의 최대 길이는 짧은 두 개의 합에서 정수 1만큼 줄어든 나머지 막대일 때 최대가 되기 때문에 이를 이용하여 결과를 출력한다.
코드 보기
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] sticks = new int[3];
// 막대의 길이 입력
for (int i = 0; i < 3; i++) {
sticks[i] = sc.nextInt();
}
// 막대의 길이를 오름차순으로 정렬
Arrays.sort(sticks);
// 세 변 중 짧은 두 변의 길이의 합이 마지막 변의 길이보다 큰지 확인
if (sticks[0] + sticks[1] > sticks[2]) {
// 성립되면 삼각형이므로 세 변의 길이를 모두 더한 값을 출력
System.out.println(sticks[0] + sticks[1] + sticks[2]);
} else {
// 삼각형이 성립되지 않으면 작은 두 변의 길이 합에 -1을 하여 나머지 변으로 지정
System.out.println((sticks[0] + sticks[1]) * 2 - 1);
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 5073 - 삼각형과 세 변 (0) | 2023.08.03 |
---|---|
[Java] 백준 풀기 10101 - 삼각형 외우기 (0) | 2023.08.02 |
[Java] 백준 풀기 2166 - 다각형의 면적 (0) | 2023.07.30 |
[Java] 백준 풀기 6502 - 동혁 피자 (0) | 2023.07.29 |
[Java] 백준 풀기 1004 - 어린 왕자 (0) | 2023.07.28 |