코딩 테스트

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

y_flm 2025. 4. 14. 12:34
반응형
문제:
선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.
가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다.
나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항
  - sides의 원소는 자연수입니다.
  - sides의 길이는 2입니다.
  - 1 ≤ sides의 원소 ≤ 1,000

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/120868

 

풀이보기
더보기
function solution(sides) {
    let count = 0;
    let longSide = Math.max(...sides);
    let shortSide = Math.min(...sides);
    
    for(let i = 1; i <= longSide + shortSide; i++) {
        if(longSide < i) {
            if(i < longSide + shortSide) count++;
        } else {
            if(longSide < shortSide + i) count++;
        }
    }
    
    return count;
}

먼저 주어진 sides 배열에서 큰 수와 작은 수를 구별해서 각각 저장해준다.

그 다음 긴 변의 길이는 나머지 두 변의 길이보다 작아야하므로 주어진 변의 길이의 합까지 반복을 해준다.

만약 i가 longSide보다 커지면 i가 가장 긴 변이 되므로 longSide + shortSide보다 작을 때만 count 해주고,

그게 아니라면 longSide가 계속 긴 변이므로 shortSide + i보다 작을 때만 count 해주면 된다.

마지막으로 알맞게 계산된 count를 반환해주면 끝!

 

반응형