KAKAO.GG
Algorithm

프로그래머스 삼각형의 완성조건 (2)

GG
2025. 5. 7.
조회 56
#프로그래머스 삼각형의 완성조건#삼각형의 완성조건#삼각형 조건 공식#수학 기반 알고리즘 최적화#조건 분기 해석

📘 문제 해설

✅ 문제 요약

두 변의 길이가 주어진 상태에서, 나머지 한 변이 될 수 있는 정수의 개수를 구하는 문제입니다.

  • 입력: 정수 배열 sides (길이 2)

  • 출력: 나머지 한 변이 될 수 있는 정수의 개수

✅ 수학적 배경: 삼각형의 조건

삼각형을 만들기 위한 조건 이해가 필요

가장 긴 변의 길이 < 다른 두 변의 길이의 합

function solution(sides) {
    const [a, b] = sides;
    const min = Math.min(a, b);
    const max = Math.max(a, b);

    return (a + b - 1) - (max - min);
}

🔍 설명

  • 나머지 변이 가장 긴 변인 경우

    • 조건: a + b > x 이므로, x < a + b

    • 또 x > max 이므로, x ∈ (max, a + b)

    • 가능한 수의 개수는: a + b - 1 - max

  • max가 가장 긴 변인 경우

    • 조건: x + min > max → x > max - min

    • 또 x ≤ max 이므로: x ∈ (max - min, max]

    • 가능한 수의 개수는: max - (max - min) = min

  • 총 개수: (a + b - 1) - (max - min)
    → 불필요한 반복문 없이 정답 바로 계산 가능!