TIL #17 [프로그래머스 JavaScript] 카타코드 51-55 복습

DO YEON KIM·2024년 5월 8일
0

부트캠프

목록 보기
17/72

하루 하나씩 작성하는 TIL #17



푸드 파이트 대회

function solution(food) {

    let front = '';
    let end = '';
    
    for(let i = 1; i < food.length; i++) {
        
        for(let j = 0; j < Math.floor(food[i] / 2); j++) {
           front += i + "";
        }
    }
    end = front.split('').reverse().join('');
    return front + "0" + end;
}

콜라 문제

function solution(a, b, n) {
    let answer = 0;
    // 교환 가능한 수량이 아닐때까지 반복
    while(n >= a) {
        answer += Math.floor(n/a)*b
        n = Math.floor(n/a)*b + n%a
    }
    return answer;
}

카드 뭉치

function solution(cards1, cards2, goal) {
    const answer = 'Yes';
    
    for (let i = 0 ; i < goal.length ; i++) {
        if (goal[i] === cards1[0]) {
            cards1.shift();
            continue
        } else if (goal[i] === cards2[0]){
            cards2.shift();
            continue
        } else {
            return "No"
        }
    }
    
    return answer;
}

2016년

function solution(a, b) {
    return new Date(2016, a-1, b).toString().slice(0,3).toUpperCase();
}

// 다른 방법
function solution(a, b) {
    // 윤년은 2월이 29일까지 있고, 1년이 366일이다.
    // 4, 100, 400으로 나누어지는 년도는 윤년이다.
    const weekToDay = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
    const leapYearMonths = [31,29,31,30,31,30,31,31,30,31,30,31]; 
    let day = b+4; // 1월 1일은 FRI, b가 1일 때 인덱스로는 5가 되어야한다.
    // 1월은 이전 월의 일수를 더하지 않음으로 a-1 조건으로 해야한다.
    for(let i = 0; i < a-1; ++i){
        day += leapYearMonths[i];
    }
    return weekToDay[day%7];
}

명예의 전당

function solution(k, score) {
    var answer = [];
    var result = [];
    for (var i =0; i < score.length; i++) {
        result.push(score[i]);
        result.sort ((a,b) => b-a );
        
        if (result.length >= k ) {
            answer.push(result[k - 1]);
            continue;
        }
        answer.push(result[result.length -1]);
    }
    return answer;
}
profile
프론트엔드 개발자를 향해서

0개의 댓글