코딩테스트 문제풀이/프로그래머스

[프로그래머스] 고득점 Kit 탐욕법(Greedy)

itaeiou 2022. 3. 16. 16:48
반응형

42862 체육복

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

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 

20220316 javascript 문제 풀이

function solution(n, lost, reserve) {
    let answer = n;
    let check = new Array(n+2).fill(0);
    
    lost.forEach(v => check[v]--);
    reserve.forEach(v => check[v]++);
    
    for(let i=1; i<=n; i++) {
        if(check[i]<0 && check[i-1]>0) {
            check[i]++;
            check[i-1]--;
        } else if(check[i]<0 && check[i+1]>0) {
            check[i]++;
            check[i+1]--;
        }
    }
    
    check.forEach(v => {if(v<0) answer--;});
    
    return answer;
}
반응형