삼각형의 완성조건(1)

민태영·2023년 7월 5일
0

문제) 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요.

나의 풀이

  1. sides배열안에서 가장 큰 값의 요소를 구한다.

  2. 가장큰 값의 요소를 제외한 요소들을 filter메소드로 색출한다.

  3. 상수 sum안에 reduce로 나머지 요소들의 합을 구한다.

  4. if문으로 가장큰 값이 나머지 합보다 크면 2를 아니면 1을 리턴한다.

function solution(sides) {
    var answer = [];
    let maxNum = sides[0]
    for(let idx = 1; idx < sides.length;  idx++) {
        if(maxNum < sides[idx]) {
            maxNum = sides[idx]
        }
    }    
    const filterArr = sides.filter((x, idx) => idx !== sides.indexOf(maxNum))
    
    const sum = filterArr.reduce((acc, curr) => {
        return acc += curr
    }, 0)

    
    if(sum > maxNum) return 1
    else return 2

}
profile
꿈을 꾸는 개발자

0개의 댓글