본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 36 - 삼각형의 완성조건 (1))

728x90

 

# 문제 

선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.

가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다.
삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.



# 답안 

// 1. 입력: sides -> 자연수 배열 [1,2,3] 같은거 
// 2. 출력: 1 또는 2
// 3. 요구사항: 가장 긴변 < 다른 두변 길이의 합 -> return 1 아니면 2
               
function solution(sides) {
    const arr = sides.sort((a,b)=>a-b)
    return arr[0]+arr[1] > arr[2] ? 1 : 2;
}



# 인사이트 

// ( arr[0]+arr[1] > arr[2] ) 이부분은 괄호를 안해도 된다. 
// 비교 연산자(>)가 논리 연산자(&&, ||, ? : 등)보다 우선순위가 높기 때문에 (arr[0]+arr[1] > arr[2])의 결과가 먼저 계산되고, 그 결과에 따라 삼항 조건 연산자(? :)가 수행되기 때문

// const arr에서 let이나 const를 생략해도 상관없지만, 이러한 방식은 변수의 범위를 명확하게 지정하지 않기 때문에 코드가 읽기 어려워질 수 있다. 
// 또한 전역 변수로 선언되는 위험이 있으므로, 변수를 선언하고 초기화하는 것이 좋은 습관이다. 
// 따라서 가능하면 let 또는 const 키워드를 사용하여 변수를 명시적으로 선언하는 것이 바람직하다.
728x90