스택이나 큐를 사용해서 문제를 다시 풀기로했으니 공부를 조금 하고 가보자. 작업 완성까지 걸리는 날짜를 구하는 부분은 그대로 사용해도 될 듯하고, 대신 그 날짜들을 queue
에 넣어서 하나씩 빼면서 원하는 값을 얻어야 한다. 그러므로 저번에 사용해보았던 queue
의 함수들을 알아봐야겠다.
source : https://mparchive.tistory.com/170
poll
을 사용하여 기준값을 정하고 peek
으로 비교를 해주면서 remove
로 하나씩 제거해주면 되겠다. 정리해보자면
queue
형태의 during
에 넣는다.during
의 원소들을 하나씩 제거하면서 값을 얻어낼 것이기 때문에 while
문을 사용하여 during
이 다 빌때까지 반복한다.start
를 during.poll()
로 선언한다.time
을 하나씩 늘려주고 그때의 원소를 remove
해준다.while
문이 한번 돌면 배포되는 날짜가 같은 작업들의 개수가 time
에 저장되어 있으므로 answer
에 더해준다.time
과start
는 첫번째 while
안에 선언했으므로 time
하나가 저장될때마다 각 각 초기화된다.레고레고
while
문에 익숙하지않아서 주로 if
문이나 for
문을 많이 사용해왔는데 queue
를 이용하는 큰 이유가 데이터를 넣다 뺏다하는 것이므로 그 부분을 중점으로 두면 while
문으로 queue
가 다 비워질때까지 조건을 다는 방법이 훨씬 좋은 것 같다.
드디어 통과~!~!