알고리즘

[알고리즘]프로그래머스 LV.1 - 체육복(JS)

로돌씨 2024. 6. 21. 14:21

문제

 

출력예

 

function solution(n, lost, reserve) {

		// 여벌없이 분실한 학생
    let realLost = lost.filter(l => !reserve.includes(l)).sort((a, b) => a - b);
		// 분실없이 여벌이 있는 학생
    let realReserve = reserve.filter(r => !lost.includes(r)).sort((a, b) => a - b);
    
		// 체육복을 빌릴 수 있는 학생 수
    let answer = n - realLost.length;

    for (let i = 0; i < realLost.length; i++) {
        let lostNum = realLost[i];
      
        for (let j = 0; j < realReserve.length; j++) {
            let reserveNum = realReserve[j];
            if (reserveNum === lostNum - 1 || reserveNum === lostNum + 1) {
              answer += 1;
              realReserve[j] = -1; 
              break; 
            }
        }
      }

    return answer;
}

 

여벌이 있는 상태로 분실했을 경우가 있으므로 여벌없이 분실한 학생만 구하여 그에 대해서만 값을 정한다.