Number of Students Unable to Eat Lunch

Guk's.velog·2024년 6월 22일
0

코딩테스트

목록 보기
17/22

문제 : Number of Students Unable to Eat Lunch

두 배열을 주고 각 첫번째 배열의 값을 비교하여 다를 경우 처음 배열을 꺼내서 맨 뒤로 넣고 같을 경우 각각의 배열 첫번째 값을 dequeue하여 남는 배열의 수를 return 하는 문제이다.

해결 코드

var countStudents = function(students, sandwiches) {
  let rotations = 0;

  //학생의 수가 0보다 크고, 회전 횟수가 학생의 수보다 작을 동안
  while (students.length > 0 && rotations < students.length) {
    let a = students.shift();
    let b = sandwiches[0];

    //값이 다를 경우 맨 뒤로 보내고 회전 수를 늘림
    if (a !== b) {
      students.push(a);
      rotations++;
    } else {
      //같을 경우 샌드위치도 dequeue
      sandwiches.shift();
      rotations = 0;
    }
  }

  return students.length;
};

0개의 댓글