다른 사람의 풀이 중 충격적인 풀이를 보았기에 포스팅을 한다.
( 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을 한 값을 반환한다.