[내배캠] TIL, WIL/TIL

알고리즘

값싼외노자 2022. 12. 19. 08:51
  • n의 배수 고르기
문제 설명

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.


제한사항
  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist의 크기 ≤ 100
  • 1 ≤ numlist의 원소 ≤ 100,000

입출력 예nnumlistresult
3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12]
5 [1, 9, 3, 10, 13, 5] [10, 5]
12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12]

입출력 예 설명

입출력 예 #1

  • numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.

입출력 예 #2

  • numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.

입출력 예 #3

  • numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.
function solution(n, numlist) {

    let c = [];
    if (numlist.length === 1) {
        if (numlist[0]%n === 0) {
            return numlist
        }
        else {

            return c
        }
    }
    
    for (const t of numlist){
        if(t%n === 0){
            c += Number(t)
            c += ','   
        }
    }
    
    const a = c.slice(0,-1).split(',');
    const b = a.map((i) => Number(i));
    
    return b
}

 

 

  • 2차원으로 만들기
문제 설명

정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.

num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.

num_listnresult
[1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]

제한사항
  • num_list의 길이는 n의 배 수개입니다.
  • 0 ≤ num_list의 길이 ≤ 150
  • 2 ≤ n < num_list의 길이

입출력 예num_listnresult
[1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]
[100, 95, 2, 4, 5, 6, 18, 33, 948] 3 [[100, 95, 2], [4, 5, 6], [18, 33, 948]]

입출력 예 설명

입출력 예 #1

  • num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 2 * 4 배열로 변경한 [[1, 2], [3, 4], [5, 6], [7, 8]] 을 return합니다.

입출력 예 #2

  • num_list가 [100, 95, 2, 4, 5, 6, 18, 33, 948] 로 길이가 9이고 n이 3이므로 3 * 3 배열로 변경한 [[100, 95, 2], [4, 5, 6], [18, 33, 948]] 을 return합니다.
function solution(num_list, n) {
    // const a = num_list.length; // 12
    // const b = a/n; // 4
//     let c = []
//     let result = [] 
//     let result2 = []
//     let result3 = []
//     let result4 = []
    
//     for(let i=0; i<n; i++){
//         result.push(num_list[i])
//     }
//     c.push(result)

//     for(let j=n; j<n+n; j++){
//         result2.push(num_list[j])
//     }
//     c.push(result2)
    
//     for(let k=n+n; k<n+n+n; k++){
//         result3.push(num_list[k])
//     }
//     c.push(result3)

//     if (num_list[n+n+n] !== undefined){
//         for(let l=n+n+n; l<n+n+n+n; l++){
//             result4.push(num_list[l])
//         }
//         c.push(result4)
//     }
//     return c
// }    
        let a = [];
        let result = [];
        let x = 0;
        let y = n;
        for(let i=0; i<num_list.length/n; i++){
            for(let j=x; j<y; j++){
                a.push(num_list[j])
            }
            x += n;
            y += n;
            result.push(a);
            a = [];
        }
        return result
}

'[내배캠] TIL, WIL > TIL' 카테고리의 다른 글

자바 스크립트  (0) 2022.12.21
자바 스크립트  (0) 2022.12.19
자바 스크립트  (0) 2022.12.16
자바 스크립트 및 좋은 개발자가 되는 방법.  (0) 2022.12.15
자바 스크립트  (0) 2022.12.14