JS 알고리즘 문제풀이

삼각형 판별하기

trophy98 2023. 9. 23. 17:44

길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 "YES"를 출력하고, 만들 수 없으면 "NO"를 출력한다.

 

💬 입력설명

첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다.

 

🟢 출력설명

첫 번째 줄에 "YES", "NO"를 출력한다.

 

 

입•출력 예제

6 7 11    13 33 17
YES   
 NO
 

↪️ 기존풀이

   function solution(a, b, c){
                let answer="YES", max;
                let tot=a+b+c;
                if(a>b) max=a;
                else max=b;
                if(c>max) max=c;
                if(tot-max<=max) answer="NO"; 
                return answer;
            }

            console.log(solution(13, 33, 17));

📌 나의풀이

function solution(a,b,c) {
    let long = Math.max(a,b,c);
    let total = a + b + c;
   if(total - long > long) {
    return "YES"
   } else {
    return "NO"
   }


}

console.log(solution(13,33,17))


function solution1(a,b,c) {
    let number = [a,b,c].sort();
    if(number[0] + number[1] > number[2]) {
        return "YES"
    } else {
        return "NO"
    }
}

console.log(solution1(6,7,11))

처음 solution 에서는 내장함수인 Math.max 함수를 사용했습니다. 기본적인 산술 연산만을 사용해서 총합과 최대값을 비교했습니다.

다음 solution1에서는 [a,b,c]의 배열을 지정함과 동시에 .sort()함수로 정렬을 하였습니다. solution 함수보다는 약간 더 많은 메모리를 사용할 가능성이 있지만, 실제로는 이 차이가 미미할 것이므로, 가독성이나 다른 측면에서 이 방식이 괜찮다고 생각하여 solution1방식도 적어보았습니다.