99클럽 코테 스터디 5일차 TIL - 42627 디스크 컨트롤러
42627. 디스크 컨트롤러 / c++ / level3 / 1시간+
문제 및 코드
접근 방식
자료구조 / 힙 / 우선순위 큐
- 문제 자체는 단순했다.
- 현재 처리할 수 있는 일들 중 가장 짧은 일을 처리한다.
- 모든 일을 처리할 때까지 반복
- 이 때, 일을 짧은 순서로 정리하기 위해서 우선순위 큐를 사용했다.
- 하지만 간과한 것이 2가지 있었다.
- 매번 일을 하나 처리할 때마다, 현재 시간이 증가하기 때문에, 새로운 일들이 들어온다. 이를 놓쳐서 큐에 있는 모든 일을 처리한 뒤 새로운 일들을 큐에 받아들였더니 틀린 답이 나왔었다.
- 첫 일을 정할때도 가장 짧은 일을 골라야 한다. jobs 벡터가 정렬되어 있지 않을 것이라고 생각해서 정렬을 했었지만, 단순 시작 시간으로만 정렬을 했었다. 그랬더니 아마 첫 일을 가장 빠른 일이지만 가장 짧은 일을 고르지 못해서 틀렸던 것 같다.
- 위의 두가지 문제를 해결했더니 정답을 맞출 수 있었다.
생각해 볼 점
- 문제 자체는 굉장히 단순하다고 생각했는데, 엣지 케이스를 찾는데 너무 많은 시간을 허비했다.
- 다음부터 이렇게 뭔가 놓치는 부분이 보이면 수도코드로 어느정도 정리해서 엣지 케이스를 잡을 수 있도록 해야겠다.
해시태그
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL