
😎풀이
- 순환한 횟수 정의
- 학생과 샌드위치 모두 순회
2-1. 현재 학생이 현재 샌드위치를 먹고싶다면, 두 요소를 모두 제거하고 순환 횟수를 0으로 초기화
2-2. 현재 학생이 현재 샌드위치가 싫다면, 학생을 큐의 처음으로 보내고 순환 횟수 증가
2-3. 만약, 순환 횟수가 학생 수와 같아진다면 무한 순회의 가능성이 있으므로 탈출
- 점심을 먹지 못한 학생 수 반환
function countStudents(students: number[], sandwiches: number[]): number {
let miss = 0
while(miss < students.length) {
const curStudent = students.shift()
const curSandwich = sandwiches[0]
if(curStudent === curSandwich) {
miss = 0
sandwiches.shift()
continue
}
miss++
students.push(curStudent)
}
return students.length
};