알고리즘

leetcode 1700 리트코드 1700번 파이썬 풀이

cocojen 2022. 3. 27. 19:44

첫 번째 샌드위치를 원하는 사람이 아무도 없을 때 남은 모든 학생의 숫자를 리턴하면 된다.

스택이랑 큐 문제이지만 쓸 필요 없음.. 그냥 카운터 쓰면 간단하다.

스탑 컨디션 찾는게 어려웠다. 문제를 잘 이해 못했던 것 같다. 

그러니까 결국 샌드위치의 순서는 바뀌지 않고, 첫 번째 샌드위치를 원하는 학생이 있으면 학생 줄은 순서가 어떻게 되던간에

원하는 학생이 와서 샌드위치를 가져갈 것이다. 하지만 샌드위치의 순서는 변하지 않기 때문에, 첫 번째 샌드위치를 

원하는 학생이 없으면 나머지 샌드위치가 어떤 것이든 남은 학생들은 모두 샌드위치를 먹지 못한다.

from collections import Counter

class Solution:
    def countStudents(self, students: List[int], sandwiches: List[int]) -> int:
        myCounter = Counter(students)
        for sandwich in sandwiches:
            if not myCounter[sandwich]:
                break
            else:
                myCounter[sandwich] -= 1
        return myCounter.total()

 

'알고리즘' 카테고리의 다른 글

[백준] 설탕배달 2839 solved by Python  (0) 2022.10.04
leetcode 232 리트코드 232 파이썬  (0) 2022.03.27