코딩테스트

뇌주름 살리기 - 21

라퐁 2025. 2. 8. 14:53

치킨 쿠폰

프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요.

function solution(chicken) {
    let answer = 0;

    const coupon = function(x) {
        if(x < 10) return 0;
        console.log(x);
        return Math.floor(x / 10) + coupon(Math.floor(x / 10) + (x % 10));
    }

    return coupon(chicken);
}

이진수 더하기

이진수를 의미하는 두 개의 문자열 bin1bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요.

function solution(bin1, bin2) {
    let answer = '';
    let bin = Number('0b' + bin1) + Number('0b' + bin2);

      //2진수 변환
    while(bin > 0) {
        answer += (bin % 2).toString();
        bin = Math.floor(bin / 2);
    }

    let binStr = answer.split('').reverse().toString().replaceAll(',', '');
      //0은 0으로 만들기
    if(binStr === '') binStr = '0';

    return binStr[0] === 0 && binStr.length > 1 ? binStr.splice(1, -1) : binStr;
}

A로 B 만들기

문자열 beforeafter가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요.

function solution(before, after) {
    return before.split('').sort().toString() === after.split('').sort().toString() ? 1 : 0;
}

k의 개수

1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.

function solution(i, j, k) {
    let answer = 0;

    for(let n = i; n <= j; n++) {
        answer += n.toString().split('').filter((x) => x === k.toString()).length;
    }

    return answer;
}