TIL25-01 오늘의 코딩테스트

김태혁·2023년 2월 7일
0

TIL

목록 보기
80/205
  1. 팩토리얼
    i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 4 3 2 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
    n result
    3628800 10
    7 3
function solution(n) {
    count = 1;
    for( let i =1; i <=n; i++) {
        if ( count <= n) { 
            count *= i+1;   // i를 계속 늘려가며 카운트에 곱해주고 n보 작거나 같아질 때
            answer = i;      //i를 반환한다.
        } 
    } return answer
}
  1. 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_list n result
    [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]
function solution(num_list, n) {
    let answer = []; 
    for (let i = 0; i< num_list.length; i++) {
        answer.push(num_list.splice(i,n));   //배열에 i위치부터 n개를 answer에 넣어준다.
            i=i-1;                      // n개가 빠졌기 때문에 다시 i를 0으로 돌려준다.
    } return answer    
}
  1. k의 개수
    1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
    i j k result
    1 13 1 6
    10 50 5 5
    3 10 2 0
function solution(i, j, k) {
    let str2 =""
    let count = 0;
    for (let l = i; l <=j; l++ ) {
         let str = l.toString() // 주어진 숫자들을 문자화 시켜
         str2 += str            // 모두 붙여서 한문장으로 만든다.
    }
    for (let j = 0; j <str2.length; j++) {
            if( str2[j] == k) {  //만들어진 문자열을 하나씩 확인해 k의 갯수를 구해준다.
                count++
            }
    } return count
}
  1. 가까운 수
    정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
    array n result
    [3, 10, 28] 20 28
    [10, 11, 12] 13 12
function solution(array, n) {
    let answer = []
    let a = array.map((x) =>Math.abs(n-x)) // 가장 가까운 수는 주어진 수와의 차의 절대값이 가장 작은 수 
    for (let i =0; i<a.length; i++) {
        if ( Math.min(...a) === a[i]) { //두 수의 차 중 가작 작은수를 구한 후 여러개일 수 있으니 배열에 넣는다.
               answer.push(array[i]);
        }
    }   return Math.min(...answer); //배열 중 작은 수를 반환한다.
}
profile
도전을 즐기는 자

0개의 댓글