[프로그래머스] 체육복 - JS

잡초·2024년 6월 7일
0
post-thumbnail

문제

풀이


javascript
코드 복사
function solution(n, lost, reserve) {
    
    let answer = 0;
    
    // 잃어버린 학생 중 여벌 옷이 없는 학생들을 오름차순으로 정렬
    const noReserveLost = lost.sort((a, b) => a - b).filter((lost) => !reserve.includes(lost));
    
    // 여벌 옷이 있는 학생 중 잃어버리지 않은 학생들을 오름차순으로 정렬
    let hasReserve = reserve.sort((a, b) => a - b).filter((reserve) => !lost.includes(reserve));
    
    // 최종적으로 체육복을 잃어버린 학생을 필터링
    const finalLost = noReserveLost.filter((lost) => {
        
        // 현재 잃어버린 학생에게 여벌 옷을 빌려줄 수 있는 학생을 찾기
        const lend = hasReserve.find((reserve) => Math.abs(reserve - lost) == 1);
        
        // 빌려줄 수 있는 학생이 없는 경우 해당 학생을 그대로 남겨두기
        if (!lend) return lost;
        
        // 빌려준 학생을 hasReserve 목록에서 제거
        hasReserve = hasReserve.filter((reserve) => reserve !== lend);
    });
  
    // 체육복을 잃어버리지 않은 학생 수를 계산
    answer = n - finalLost.length;
    
    return answer;
}
profile
개발자가 되고싶은 잡초

0개의 댓글