문제
https://school.programmers.co.kr/learn/courses/30/lessons/120868
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
삼각형이 만들어지려면 가장 긴 변의 길이는 나머지 두 변의 길이의 합보다 작아야 한다.
이 문제에서는 두 변의 길이가 주어지고 나머지 한 변의 길이를 구하는 경우이므로, 새로운 변이 가장 긴 변인 경우와 기존의 변이 가장 긴 변인 경우를 모두 고려해야 한다.
- 새로운 변이 가장 긴 변인 경우: 새로운 변 < 두 변의 합
- 기존의 변이 가장 긴 변인 경우: 새로운 변 > 가장 긴 변 - 나머지 변
두 변의 합 > 새로운 변 > 가장 긴 변 - 나머지 변이므로 범위 사이의 개수를 구하면 된다.
이를 모두 만족하는 가능한 길이의 개수는 **2 × (더 짧은 변의 길이) - 1**이 된다.
따라서 더 짧은 변을 구한 뒤 아래와 같이 계산하면 된다.
int answer = 2 * Math.min(sides[0], sides[1]) - 1;
여기서 Math.min()을 이용해 두 변 중 더 짧은 변을 구하고, 이를 이용해 가능한 경우의 수를 한 번에 계산할 수 있다. 별도의 반복문 없이 수식만으로 해결할 수 있는 것이 이 풀이의 핵심이다.
코드
class Solution {
public int solution(int[] sides) {
int answer = 2 * Math.min(sides[0], sides[1]) - 1;
return answer;
}
}'PS > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv.0] 캐릭터의 좌표(Java) (0) | 2026.08.02 |
|---|---|
| [프로그래머스 Lv.0] 영어가 싫어요(Java) (0) | 2026.08.01 |
| [프로그래머스 Lv.0] 구슬을 나누는 경우의 수(Java) (0) | 2026.07.28 |
| [프로그래머스 Lv.0] 이진수 더하기(Java) (0) | 2026.07.27 |
| [프로그래머스 Lv.0] 공 던지기(Java) (0) | 2026.07.26 |
댓글