기능개발 2

최진훈·2022년 3월 22일
0

programmers

목록 보기
56/73

스택이나 큐를 사용해서 문제를 다시 풀기로했으니 공부를 조금 하고 가보자. 작업 완성까지 걸리는 날짜를 구하는 부분은 그대로 사용해도 될 듯하고, 대신 그 날짜들을 queue에 넣어서 하나씩 빼면서 원하는 값을 얻어야 한다. 그러므로 저번에 사용해보았던 queue의 함수들을 알아봐야겠다.

source : https://mparchive.tistory.com/170

poll을 사용하여 기준값을 정하고 peek으로 비교를 해주면서 remove로 하나씩 제거해주면 되겠다. 정리해보자면

  1. 이전과 동일하게 완성까지의 날짜를 구하고 queue형태의 during에 넣는다.
  2. during의 원소들을 하나씩 제거하면서 값을 얻어낼 것이기 때문에 while문을 사용하여 during이 다 빌때까지 반복한다.
  3. 맨 앞의 원소를 기준으로 비교를 할 것이므로 startduring.poll()로 선언한다.
  4. 뒤에 오는 원소가 같거나 더 작으면 time을 하나씩 늘려주고 그때의 원소를 remove해준다.
  5. 안쪽 while문이 한번 돌면 배포되는 날짜가 같은 작업들의 개수가 time에 저장되어 있으므로 answer에 더해준다.
  6. timestart는 첫번째 while안에 선언했으므로 time하나가 저장될때마다 각 각 초기화된다.

레고레고

while문에 익숙하지않아서 주로 if문이나 for문을 많이 사용해왔는데 queue를 이용하는 큰 이유가 데이터를 넣다 뺏다하는 것이므로 그 부분을 중점으로 두면 while문으로 queue가 다 비워질때까지 조건을 다는 방법이 훨씬 좋은 것 같다.

드디어 통과~!~!

profile
레고레고

0개의 댓글