[LeetCode] 1700. Number of Students Unable to Eat Lunch

Chobby·4일 전
1

LeetCode

목록 보기
582/582

😎풀이

  1. 순환한 횟수 정의
  2. 학생과 샌드위치 모두 순회
    2-1. 현재 학생이 현재 샌드위치를 먹고싶다면, 두 요소를 모두 제거하고 순환 횟수를 0으로 초기화
    2-2. 현재 학생이 현재 샌드위치가 싫다면, 학생을 큐의 처음으로 보내고 순환 횟수 증가
    2-3. 만약, 순환 횟수가 학생 수와 같아진다면 무한 순회의 가능성이 있으므로 탈출
  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
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글