[프로그래머스]체육복

·2021년 11월 5일
0

코테문제풀기

목록 보기
44/57

문제확인

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

문제풀이

function solution(n, lost, reserve) {
  var answer = [];
  lost.sort((a,b) => a - b)
  reserve.sort((a,b) => a - b)

  //반복문 n까지 돌면서
  for(let i = 1; i <= n; i++) {
    //로스트에 i가 없으면 answer에 푸시
    if (!lost.includes(i)) answer.push(i);
    //i가 로스트 있다 -> 리저브에도 있다면 리저브에서 삭제 & answer에 푸시
    else {
      if (reserve.includes(i)) {
        var index = reserve.indexOf(i);
        reserve.splice(index, 1);

        index = lost.indexOf(i);
        lost.splice(index, 1);

        answer.push(i); 
      }
    }
  } 

  for (let i = 0; i < lost.length; i++) {
    //i가 로스트 있으나 리저브에 없다 -> 리저브에 로스트[i] + 1 이나 - 1인 값이 있는지 찾기 있다면 answer 배열에 푸시
    if (reserve.includes(lost[i] + 1) && reserve.includes(lost[i] - 1)) {
      var index = reserve.indexOf(lost[i] - 1);
      reserve.splice(index, 1);
      answer.push(lost[i]);
    } else if(reserve.includes(lost[i] - 1)) {
      var index = reserve.indexOf(lost[i] - 1);
      reserve.splice(index, 1);
      answer.push(lost[i]);
    }
    else if(reserve.includes(lost[i] + 1)){
      var index = reserve.indexOf(lost[i] + 1);
      reserve.splice(index, 1);
      answer.push(lost[i]);
    }
  } 
//answer.length 리턴
 return answer.length;
}

0개의 댓글