[Day 6]アルゴリズム


質問です.

整数降順で配置


https://programmers.co.kr/learn/courses/30/lessons/12933
function solution(n) {
   return +(n + "").split("").sort((a,b)=> b - a).join("")
}
質問です.

パリティ


https://programmers.co.kr/learn/courses/30/lessons/12937
function solution(num) {
    return num % 2 === 0 ? "Even" : "Odd"
}
質問です.

携帯番号を隠す


https://programmers.co.kr/learn/courses/30/lessons/12948
function solution(phone_number) {
    let arr = phone_number.split("");
    
    for(let i =0; i< arr.length -4; i++) {
        arr[i] = "*"
    }
    return arr.join("");
}
質問です.

コラズの推測


https://programmers.co.kr/learn/courses/30/lessons/12943
答えを出す.
function solution(num) {
    const collatzRecursive = (input , count) => {
        if(count > 500) return -1;
        if(input === 1) return count;
        if(input % 2 === 0 ) return  collatzRecursive(input / 2, count +1);
        else return collatzRecursive(input * 3 + 1, count +1)
    }
    
    return collatzRecursive(num ,0);
}
説明する.
function solution(num) {
    let count = 0; 
    
    while(num < 500) {
        if(num === 1){
            return count;
        }
        count++
        num = num % 2 === 0 ? num / 2 : num * 3 + 1
    }
    
    return -1
}
質問です.

間隔xのn個の数字


https://programmers.co.kr/learn/courses/30/lessons/12954
function solution(x, n) {
    let arr = [];
    
    for(let i=1; i <= n; i++) {
        arr.push(i * x)
    }
    return arr;
}
function solution(x, n) {
 return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

github

  • https://github.com/jangwonyoon/algorithm_study/tree/main/jangwon/js_study/Day6