JS 알고리즘 5주차

박규원·2023년 5월 11일
0

JS 알고리즘

목록 보기
4/11

팩토리얼

💡 `i`팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요.
  • i! ≤ n
function solution(n) {
    var answer = 0;
    var result=1;
    for(i=1;i<=n;i++){
        result=result*i;
        if(result<=n){
            answer=i;
        }
    }
    
    return answer;
}

k의 개수

💡 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 `i`, `j`, `k`가 매개변수로 주어질 때, `i`부터 `j`까지 `k`가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
function solution(i, j, k) {
    var answer = 0;
    
    k=k.toString();
    
    for(var a=i;a<=j;a++){
        answer+=(a.toString().split(k).length-1);
    }
    return answer;
}

가까운 수

💡 정수 배열 `array`와 정수 `n`이 매개변수로 주어질 때, `array`에 들어있는 정수 중 `n`과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요.
function solution(array, n) {
    var answer = 0;
    var min=100;
    array=array.sort();
    for (var i=0;i<array.length;i++){
        if(min>Math.abs(array[i]-n)){
            min=Math.abs(array[i]-n);
            answer=array[i];
        }
    }
    return answer;
}

잘라서 배열로 저장하기

💡 문자열 `my_str`과 `n`이 매개변수로 주어질 때, `my_str`을 길이 `n`씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
function solution(my_str, n) {
    var answer = [];
    var times=(my_str.length/n)+1;
    if((my_str.length%n)==0)times=times-1;
    
    var i=0;
    var count=0;
    for(var a=0;a<times;a++){
        if(a==(times-1)){ //왜 배열 마지막 원소에 ''가 생길까? 
            answer.push(my_str.substr(i)); // 예시 "hello"
            
        }
        else {
            answer.push(my_str.substr(i,n));
            i=i+n;
        }
        if(answer[answer.length-1]=='') answer.pop();
    }
    return answer;
}

한 번만 등장한 문자

💡 문자열 `s`가 매개변수로 주어집니다. `s`에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
function solution(s) {
    var answer = '';
    for(var i=0;i<s.length;i++){
        if(s.split(s[i]).length==2)
            answer+=s[i];
    }
    return answer.split("").sort().join("");
}
profile
Just do IT

0개의 댓글