본문 바로가기
  • Let's study
PS/Programmers

[프로그래머스 Lv.0] 삼각형의 완성조건(2)(Java)

by 코딩고수이고파 2026. 7. 29.

문제

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;
    }
}

댓글