문제
내가 작성한 정답
import java.util.*;
class Solution {
public int solution(int[] sides) {
int answer = 0;
Arrays.sort(sides);
//case1 안에 있는게 가장 큰 변일 때
for(int i=1; i<=sides[1]; i++){
if(sides[1]<sides[0]+i) answer++;
}
// case2 안에 있는게 작은 변 2개일 때
for(int i=1; i<sides[0]+sides[1]; i++){
if(sides[0]<i && sides[1]<i) answer++;
}
return answer;
}
}다른 사람들의 정답
class Solution {
public int solution(int[] sides) {
int answer = 0;
int min = Math.min(sides[0], sides[1]);
answer += min * 2 - 1;
return answer;
}
}
경우 1: x가 가장 긴 변이 아닌 경우 (x ≤ max)
조건: max < min + x → x > max - min
범위: max - min + 1부터 max까지
개수: max - (max - min + 1) + 1 = min
경우 2: x가 가장 긴 변인 경우 (x > max)
조건: x < min + max
범위: max + 1부터 min + max - 1까지
개수: (min + max - 1) - (max + 1) + 1 = min - 1
총 개수: min + (min - 1) = min * 2 - 1Share article