[Algorithm] 삼각형의 완성조건 (2)

미누·2023년 3월 20일
0

Algorithm

목록 보기
1/8
post-thumbnail

삼각형의 완성조건 (2)

다른 사람의 풀이 중 충격적인 풀이를 보았기에 포스팅을 한다.

( TMI. 나에게 알고리즘 문제를 푸는 묘미 중 하나는 다른 사람들의 다양하고 기발한 풀이들을 보는 것이다! ㅎ-ㅎ )

깔끔하게 풀고 싶어서 문제를 간단하게 해결할 수 있는 수학적 공식을 고심해 보았지만 늦은 시간에 푸는지라 머리가 잘 돌아가질 않아 이는 포기하고서 단순 무식한 풀이로 진행하였다 ㅜ...


나의 풀이

function solution(sides) {
    var answer = 0;
    let n = 1;
    sides.push(n);
    let [a,b,c] = sides
    
    let bool = true;
    
    while(bool){
        let max = Math.max(...sides)
        let arr = [];
        if( a === max && (b+c) > a) answer++;
        else if(b === max && (a+c) > b) answer++;  
        else if(c === max && (a+b) > c) answer++;
        
        c++;
        
        c >= a+b ? bool = false : bool;
    }
    return answer;
}

할많하않... ㅎㅎ

다른 멋진 풀이들을 공부할 수 있다는 점에 의의를 두자 !

충격적인 풀이

function solution(sides) {
    return Math.min(...sides)*2-1
}


사진에서 볼 수 있듯, 따봉의 수가 해당 풀이가 얼마나 훌륭한지를 설명한다.

간단히 설명하자면,
Math.min(...배열)을 활용하여 주어진 sides 배열에서 최솟값을 얻는다. 이렇게 얻은 값을 x2 그리고 -1을 한 값을 반환한다.

profile
Dev Notes, with bit of JS?

0개의 댓글