[기초 Lv.0] 배열의 길이를 2의 거듭제곱으로 만들기

oaksusu·2024년 1월 22일
0
post-thumbnail

오답노트 11번

1. 문제 (링크) :

정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요.

2. 내가 푼 방법 :

function solution(arr) {
    var answer = [1,2,4,8,16,32,64,128,256,512, 1024];
    answer.push(arr.length);
    answer.sort((a,b) => a - b);
    const idx = answer.indexOf(arr.length) + 1;
    if (answer[idx] !== arr.length) {
        const num = answer[idx] - arr.length;
        for (let i = 0; i < num; i++) {
            arr.push(0);
        }
    }
    return arr;
}

3. 테스트 통과못했던 이유 :

answer에 2의 0 제곱인 1이 포함되어 있지 않았음!!
모든 경우를 고려해야함... !

제한사항 : 1 ≤ arr의 길이 ≤ 1,000

제한사항을 제대로 파악하지 못했음! 다음엔 잘 보자!

profile
삐약

0개의 댓글