프로그래머스 Lv. 0 | Day 9 수학, 문자열, 해시, 완전탐색, 조건문

doodoo·2023년 2월 23일
0

프로그래머스

목록 보기
9/10
post-thumbnail

👀 개미 군단

문제

개미 군단

풀이

function solution(hp) {
    let count = 0;
    let sum = hp;

    while(0 < sum) {
        if(sum >= 5) {
            sum -= 5;
            count++;
        } else if(sum >= 3) {
            sum -= 3;
            count++;
        } else {
            sum -= 1;
            count++;
        }
    }
    
    return count;
}




👀 모스부호(1)

문제

모스부호(1)

풀이

function solution(letter) {
    const morse = { 
    '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'
    }
    
    let result = '';
    
    const letterSplit = letter.split(' ');
    
    letterSplit.forEach(word => {
        result += morse[word];
    });
    
    return result;
}

다른 사람의 풀이

✅ reduce로 풀기

function solution(letter) {
    const morse = { 
    '.-':'a','-...':'b','-.-.':'c','-..':'d','.':'e','..-.':'f',
    '--.':'g','....':'h','..':'i','.---':'j','-.-':'k','.-..':'l',
    '--':'m','-.':'n','---':'o','.--.':'p','--.-':'q','.-.':'r',
    '...':'s','-':'t','..-':'u','...-':'v','.--':'w','-..-':'x',
    '-.--':'y','--..':'z'
    }
    
    const letterSplit = letter.split(' ');
    
    return letterSplit.reduce((acc, cur) => acc += morse[cur], '');
}




👀 가위 바위 보

문제

가위 바위 보

풀이

✅ forEach

function solution(rsp) {
    let result = "";
    
    [...rsp].forEach(item => {
        if(item === "0") {
            result += "5";
        } else if (item === "2") {
            result += "0";
        } else {
            result += "2";
        }
    });
    
    return result;
}

✅ reduce

function solution(rsp) {
    return [...rsp].reduce((acc, cur) => {
        if (cur === "0") return acc += "5";
        if (cur === "2") return acc += "0";
        if (cur === "5") return acc += "2";
    }, '');
}

다른 사람의 풀이

✅ 객체 사용하기

function solution(rsp) {
    const rspObj = {
        2: 0,
        0: 5,
        5: 2
    };
    
    return [...rsp].reduce((acc, cur) => acc + rspObj[cur], '')
}




👀 구슬을 나누는 경우의 수

문제

구슬을 나누는 경우의 수

풀이

function solution(balls, share) {
    if(balls === share) return 1;
    
    const factorial = (n) => {
        return (n != 1) ? n * factorial(n - 1) : 1;
    }
    
    const n = factorial(balls);
    const m = factorial(share);
    const nm = factorial(balls - share);
    
    return Math.round(n / (nm * m));
}

0개의 댓글