[프로그래머스 레벨 1 JavaScript] '체육복' 풀이

glow_soon·2022년 2월 7일
0

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42862

function solution(n, lost, reverse) {
  let answer = 0;
  let data = [];
  for (let i = 0; i < n; i++) {
    data[i] = 1; // 모두가 체육복 한개씩 가지고 있도록 설정
  }
  for (let i = 0; i < lost.length; i++) {
    data[lost[i] - 1] = 0; // 체육복 도난당한 학생 0
  }
  for (let i = 0; i < reverse.length; i++) {
    data[reverse[i] - 1] += 1; // 여분 체육복 가져온 학생 +1
  }
  for (let i = 0; i < n; i++) { 
    if (data[i - 1] == 2 && data[i] == 0) { // 앞번호 학생한테 빌릴수 있는 경우
      data[i - 1] = 1;
      data[i] = 1;
    } else if (data[i + 1] == 2 && data[i] == 0) { // 뒷번호 학생한테 빌릴수 있는 경우
      data[i + 1] = 1;
      data[i] = 1;
    }
  }
  for (let i = 0; i < n; i++) { // 체육복 가지고 있으면 answer+1;
    if (data[i] > 0) {
      answer++;
    }
  }
  return answer;
}

더 간단한 풀이가 있을거 같다...!!

profile
FE Developer

0개의 댓글

관련 채용 정보