컴퓨터/백준 알고리즘
백준 알고리즘 - 14215번: 세 막대 [Java]
이상한 나그네
2023. 9. 12. 00:13
문제: https://www.acmicpc.net/problem/14215
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[3];
int maxValue = 0;
int index = 0;
for(int i = 0; i < 3; i++) {
arr[i] = sc.nextInt();
if(maxValue < arr[i]) {
index = i;
maxValue = arr[i];
}
}
int sum = 0;
for(int i = 0; i < 3; i++) {
if(index != i)
sum += arr[i];
}
while(arr[index] >= sum)
arr[index]--;
System.out.println(sum + arr[index]);
}
}
2. 설명
for(int i = 0; i < 3; i++) {
arr[i] = sc.nextInt();
if(maxValue < arr[i]) {
index = i;
maxValue = arr[i];
}
}
반복문을 통해서 최댓값과 최대값에 대한 인덱스 값을 추출합니다.
int sum = 0;
for(int i = 0; i < 3; i++) {
if(index != i)
sum += arr[i];
}
반복문을 통해서 가장 큰 변이 아닌 나머지 변들의 합을 구합니다.
while(arr[index] >= sum)
arr[index]--;
System.out.println(sum + arr[index]);
삼각형의 조건이 성립될 때까지 가장 큰 변의 길이를 1씩 감소시킨 뒤 둘레의 길이를 출력합니다.