min

프로그래머스 체육복 자바스크립트 본문

알고리즘

프로그래머스 체육복 자바스크립트

minprogramming 2023. 6. 21. 14:37

<문제>

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

<나의 풀이>

function solution(n, lost, reserve) {
    var answer = 0;
    let realLost=lost.filter((l)=>!reserve.includes(l));
    let realReserve=reserve.filter((r)=>!lost.includes(r));
    answer = n-realLost.length;
    
    realLost.sort((a,b)=>a-b);
    
    realLost.forEach((val)=>{
        
        if(realReserve.includes(val-1)){
            realReserve=realReserve.filter((r)=>r!==val-1);
            answer++;
        }
        else if(realReserve.includes(val+1)){
            realReserve=realReserve.filter((r)=>r!==val+1);
            answer++;
        }
        
    })
    return answer;
}

<다른 사람의 풀이>

function solution(n, lost, reserve) {      
    return n - lost.filter(a => {
        const b = reserve.find(r => Math.abs(r-a) <= 1)
        if(!b) return true
        reserve = reserve.filter(r => r !== b)
    }).length
}

<궁금중>

abs

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/abs