프로그래머스

[JavaScript] 삼각형의 완성조건 (1) - 프로그래머스

jjangsh 2024. 8. 2. 22:23

문제 :

 

 

내 풀이 :

function solution(sides) {
    let sum = 0;
    const maxNum = Math.max(...sides);
    const maxNumIndex = sides.indexOf(maxNum);
    
    sides.splice(maxNumIndex, 1);
    
    for(let i = 0; i < sides.length; i++) {
        sum += sides[i];
    }
    
    if(sum > maxNum) {
        return 1;
    } else {
        return 2;
    }
}

 

1. 세 변의 길이가 담긴 배열 sides에서 max값을 구한다.

 

2. 구한 max값의 index를 구한다.

 

3. splice() 메서드를 사용하여 sides에서 max값을 지운다.

 

4. 나머지 sides에 담긴 요소들은 반복문으로 더한다.

 

5. 더한 값이 max값보다 크면 1을, 작으면 2를 리턴한다.

 

 

다른 사람의 풀이 :

function solution(sides) {
    sides.sort((a,b)=>a-b);
    return sides[0] + sides[1] > sides[2] ? 1 : 2;
}

 

오름차순으로 정렬하고 0번째와 1번째 요소를 더한 값이 2번째 요소보다 크면 1을, 작으면 2를 리턴한다.

 

문제에서 sides의 길이는 3이라는 제한사항이 있기 때문에 위 풀이처럼 정렬을 하고 코드를 짰으면 훨씬 간단하게 풀 수 있었을 것이다.