[Day6] 알고리즘

문제1

정수 내림차순으로 배치하기

https://programmers.co.kr/learn/courses/30/lessons/12933

function solution(n) {
   return +(n + "").split("").sort((a,b)=> b - a).join("")
}

문제2

짝수와 홀수

https://programmers.co.kr/learn/courses/30/lessons/12937

function solution(num) {
    return num % 2 === 0 ? "Even" : "Odd"
}

문제3

핸드폰 번호 가리기

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("");
}

문제4

콜라츠 추측

https://programmers.co.kr/learn/courses/30/lessons/12943

풀이1

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);
}

풀이2

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
}

문제5

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

좋은 웹페이지 즐겨찾기