체육복

이묘·2022년 8월 5일
0

CodingTest

목록 보기
30/41
post-thumbnail

프로그래머스 코딩테스트 1단계




소스코드

function solution(n, lost, reserve) {
  
  	// 여벌을 갖고온 사람과 잃어버린 사람이 정렬되어있다는 보장이 없으므로 정렬하고 시작
    reserve.sort((a, b) => a - b);
    lost.sort((a, b) => a - b);
    var reserve_copy = [];

    for(var i = 0; i < reserve.length; i++) {
        // 여분 갖고온 사람이 분실했다면
        if(lost.includes(reserve[i])){
            lost.splice(lost.indexOf(reserve[i]), 1);
            // reserve copy에 체육복 2벌 있는 사람체크
            reserve_copy.push(reserve.filter((element) => element === reserve[i])[0]);
        }
    }
    // 여벌 갖고왔는데 하나 잃어버린 사람 reserve에서 삭제
    reserve = reserve.filter(element => !reserve_copy.includes(element))

    for(var i = 0; i < reserve.length; i++) {
        if( lost.includes(reserve[i]-1)){
            // lost안에 reserve[i]+1와 같은 요소가 있으면
            lost.splice(lost.indexOf(reserve[i]-1), 1)
        }
        else if( lost.includes(reserve[i]+1) ){
            lost.splice(lost.indexOf(reserve[i]+1), 1)
        }
    }
    return n - lost.length;
}

console.log( solution( 24,	[12, 13, 16, 17, 19, 20, 21, 22],	[1,22, 16, 18, 9, 10]) )
// 17명



1단계 코테 몇 문제 안남았다...ㅠ

profile
프론트앤드개발자 희망

0개의 댓글