[Lv.0] 삼각형의 완성조건 (2)

01수정·2023년 6월 7일
0
post-thumbnail

<입문 100문제> Day 21 - 문자열, 사칙연산, 시뮬레이션, 2차원배열, 수학, 배열

문제



풀이

(1) "주어지는 두 면의 길이가 같은" 테스트케이스에 실패

function solution(sides) {
    let answer = [];
    
    // (1) 가장 긴 변이 sides 내에서 주어진 경우
    let max = (Math.max(...sides))*1;
    let min = (sides.filter(num => num !== max))*1;
    for (let i=1; i<= (max - (max-min)); i++) {
        answer.push(i);
    }
    
    // (2) 가장 긴 변이 sides 내에서 주어지지 않은 경우
    for (let i=max+1; i<= ((max+min) - 1); i++) {
        if (!answer.includes(i)) {
            answer.push(i);
        }
    }
    
    return answer.length;
}

(2) 그냥 sort 로 정렬해서 max, min 값을 구하기로 하였다

function solution(sides) {
    let answer = [];
    sides = sides.sort((a, b) => b - a);
    
    // (1) 가장 긴 변이 sides 내에서 주어진 경우
    let max = sides[0]*1;
    let min = sides[1]*1;
    for (let i=1; i<= (max - (max-min)); i++) {
        answer.push(i);
    }
    
    // (2) 가장 긴 변이 sides 내에서 주어지지 않은 경우
    for (let i=max+1; i<= ((max+min) - 1); i++) {
        if (!answer.includes(i)) {
            answer.push(i);
        }
    }
    
    return answer.length;
}

해답

profile
새싹 FE 개발자

0개의 댓글