본문 바로가기

프로그래밍/Python

[ 코테python반 스터디 ] 배상 비용 최소화

<문제 설명 하단 링크 참조>

https://velog.io/@dhhyy/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%B0%B0%EC%83%81-%EB%B9%84%EC%9A%A9-%EC%B5%9C%EC%86%8C%ED%99%94


이 문제는 입력 데이터가 1,000,000 이하의 자연수로 힙을 사용할 수 있는 예제이다. 그래서 priority queue(heap)에 대해 공부하고 있다. 이론적으로는 이게 뭔지 알고 있었고, 실제 코드를 클론해서 구현해보기도 했지만 실제 문제에 적용하려고 보니 머릿속이 뒤죽박죽이다. 

내 나름대로 힙 라이브러리를 이용, 문제를 풀려고 시도했으나 시간 초과로 풀리지 않는 테스트 케이스가 2개가 계속 발생한다. 이유를 찾아봐야겠다.

구글링을 해서 살펴보니 예외처리를 제대로 하지 못한 문제였다. 애초에 no값이 works 전체 값보다 크면 루프문이 성립할 수 없다는 것을 간과했다. 아래 구문을 함수 초입에 입력해주면 테스트케이스 2개도 통과된다..

if no > sum(works):
        return 0

 

https://programmers.co.kr/learn/courses/14134