🔗 2336. Smallest Number in Infinite Set이 문제 또한 heap 을 사용하면 훨씬 실행속도가 빨랐다. 1~1000 의 숫자가 있는 set 에서 popSmallest 를 하면 가장 작은 숫자를 반환하고addBack 을 하면 숫자를 추가한다. 당연히 집합이므로 같은 숫자는 들어갈 수 없어야 한다.min( ) 으로 최소값을 찾았을 때 실행속도가 상당히 느렸다.heapq를 사용하면 속도가 빨라졌으나 나보다 빠른 사람들이 훨씬 많았다heapq를 사용하면서 Counter를 사용한 예시를 봐서 따라해 봤는데 더 빨라졌다. Counter 란? 🙄 - 출처: 파이썬 공식문서 Counter 란 hashable 한 object를 count 하는 dict의 su..
🔗 프로그래머스 - 디스크 컨트롤러운영체제 수업때 했던 내용이었으나 또 삽질을 했다.정리하자면,하드디스크가 놀고 있을 때에는 먼저 요청된 작업부터 진행한다. - jobs 를 sort 해야 한다는 뜻하드디스크가 작업중일 때 요청이 들어오는 경우 작업 시간이 짧은 작업 순서로 대기열에 들어간다. - heap을 이용해 우선순위 정렬 삽질 했던 부분은대기열에 삽입 할 때, 요청된 시간 보다 현재 시간이 클 때로 잘못 적어놔서 (요청 시간 > time) 계속 틀렸었다 ▶ 부등호 잘 보기작업 시간이 0일 때 처리를 해주지 않아 틀렸었다. 처음 jobs를 sort 하지 않아 틀렸었다. + 다른 분이 푸신 방법 중에 데크를 사용한 방법이 있었다. 실행속도가 굉장히 빨랐다. 데크는 처음 들어봐서 정리해 봤다.dequ..
🔗 프로그래머스 - 더 맵게 힙을 사용해야 시간 초과가 일어나지 않는 문제였다. 파이썬 공식 문서>heapq.heappush(heap, item)힙 불변성을 유지하면서, item 값을 heap으로 푸시합니다.heapq.heappop(heap)힙 불변성을 유지하면서, heap에서 가장 작은 항목을 팝하고 반환합니다. 힙이 비어 있으면, IndexError가 발생합니다. 팝 하지 않고 가장 작은 항목에 액세스하려면, heap[0]을 사용하십시오.heapq.heappushpop(heap, item)힙에 item을 푸시한 다음, heap에서 가장 작은 항목을 팝하고 반환합니다. 결합한 액션은 heappush()한 다음 heappop()을 별도로 호출하는 것보다 더 효율적으로 실행합니다.heapq.heapif..