https://www.acmicpc.net/problem/14215
문제 분석
삼각형의 성립 조건식을 알아야 풀 수 있는 문제이다.
삼각형 성립 조건 : 가장 긴 변의 길이가 나머지 두 변의 합보다 작아야 한다.
소스 코드 (⭕)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
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 = new int[3];
for (int i = 0; i < 3; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int k = (arr[0] + arr[1]) > arr[2] ? arr[2] : arr[0] + arr[1] - 1;
System.out.println(arr[0] + arr[1] + k);
}
}
코드 분석
(편의상 가장 긴 변의 길이를 k라고 지칭하겠다.)
1. 삼각형 세 변의 길이를 배열에 입력받고, 길이순으로 정렬해준다.
2. 삼각형의 둘레를 최대로 해야 하기 때문에 k만 삼각형 성립 조건에 맞게 조절해주면 된다.
3. 삼항연산자를 이용하여, 나머지 두 변의 길이가 k보다 크다?
3-1. (참) -> 삼각형 성립 조건 만족 O -> 가장 긴 변의 길이는 그대로 k
3-2. (거짓) -> 삼각형 성립 조건 만족 X -> 가장 긴 변의 길이는 나머지 두 변의 길이의 합에서 -1만 해주면 조건을 성립하면서 제일 긴 변의 길이가 된다.
4. 따라서, 삼각형 최대 둘레는 arr[0] + arr[1] + 새로 구한 c가 된다.
end
오랜만에 코테 포스팅을 했는데 설명하는 실력이 퇴화한 것 같다.
열심히 해보자
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Java]백준_15439 : 베라의 패션 (0) | 2025.03.31 |
---|---|
[Java]백준_10798 : 세로읽기 (1) | 2025.03.26 |
[C]백준_5622 : 다이얼 (0) | 2024.04.08 |
[C]백준_8979 : 올림픽 (0) | 2024.04.07 |
[C]백준_24389 : 2의 보수 (0) | 2024.04.07 |