728x90
코드 힌트
- 규칙 찾기:
- 주어진 두 변이 삼각형을 형성할 수 있는 경우, 세 번째 변의 길이는 특정 범위 내에서 가능해야 합니다.
- 예를 들어, 주어진 변의 길이가 [11, 7]인 경우를 생각해봅시다.
- 11이 가장 긴 변일 때:
- 삼각형의 성질에 따르면, 가장 긴 변의 길이는 나머지 두 변의 길이의 합보다 작아야 합니다.
- 이 경우 세 번째 변의 길이 x는 11 > x > 4이어야 하므로, 가능한 변의 길이는 5, 6, 7, 8, 9, 10으로 6개의 경우가 가능합니다.
- max < n + min && n < max가 가능한 경우의 수 입니다. max - (max-min+1)개가 나올 수 있습니다.
- 주어진 변이 가장 긴 변이 아닐 때:
- 주어진 변 [11, 7]이 가장 긴 변이 아닐 때, 세 번째 변이 가장 긴 변이 됩니다.
- 이 경우, x = 12, 13, 14, 15, 16, 17이 가능합니다. 역시 6개의 경우가 있습니다.
- max + min > num && max <= num이 가능한 경우의 수 입니다. (max+min) - max개 이빈다.
- 최종 규칙:
- 위의 규칙을 일반화하면, 주어진 변 중 더 짧은 변 min과 더 긴 변 max가 주어졌을 때, 세 번째 변이 삼각형의 가장 긴 변이 될 수 있는 경우의 수와, 주어진 변 중 하나가 가장 긴 변이 될 수 있는 경우의 수를 고려해야 합니다.
정답은 더보기 클릭
더보기
class Solution {
public int solution(int[] sides) {
int result = 0;
int min = Math.min(sides[0], sides[1]);
int max = Math.max(sides[0], sides[1]);
// 주어진 변의 길이 중 하나가 가장 긴 변일 때 가능한 세 번째 변의 수를 더합니다.
result += max - (max - min + 1);
// 주어지지 않은 변이 가장 긴 변이 될 때 가능한 세 번째 변의 수를 더합니다.
result += (max + min) - max;
// 최종적으로 가능한 모든 변의 길이 경우의 수를 구합니다.
return min * 2 - 1;
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 외계어 사전 (0) | 2024.08.16 |
---|---|
[프로그래머스] 평행 (0) | 2024.08.16 |
[프로그래머스] 구슬을 나누는 경우의 수 (0) | 2024.08.16 |
[프로그래머스] 캐릭터의 좌표 (0) | 2024.08.15 |
[프로그래머스] 영어가 싫어요 (0) | 2024.08.15 |