강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của dreaming18177639
dreaming18177639

câu hỏi đã được viết

Bí quyết đỗ 38 nơi, các thuật toán bắt buộc cho kỳ thi Coding Test 2025

4-9. Kết thúc tuần 4 & Giải thích bài tập về nhà

4-9 4주차 숙제중 농심라면 문제

Đã giải quyết

Viết

·

95

0

현재 노션에 있는 코드대로 써 보았습니다

def get_minimum_count_of_overseas_supply(stock, dates, supplies, k):
    answer = 0
    last_added_date_index = 0
    max_heap = []
    while stock < k :
            #후보군이 되어야하는 것들만 넣는다 => 공장이 멈추기 전까지
            while last_added_date_index < len(dates) and dates[last_added_date_index] <= stock:
                heapq.heappush(max_heap, supplies[last_added_date_index] * -1)
                last_added_date_index += 1

            supply = heapq.heappop(max_heap) * -1
            stock += supply
            answer += 1

    return answer

하지만 9번 테스트 케이스(마지막 날에 공급받는 경우)에서 정답은 2인데, 현재 풀이 값은 1로 나옵니다.

# 9. 마지막 날에 공급받는 경우
print("정답 = 2 / 현재 풀이 값 =", get_minimum_count_of_overseas_supply(10, [10, 29], [20, 100], 30))

노션을 확인해보았지만 코드는 같습니다.

뭔가 놓치신게 있는거 같습니다. 어떻게 수정하면 될까요?

python코딩-테스트알고리즘data-structure

Câu trả lời 2

0

dingcodingco님의 프로필 이미지
dingcodingco
Người chia sẻ kiến thức

안녕하세요 기정님! JHL 님 말씀처럼 테스트케이스가 잘못되었었습니다!! 😢

코드는 그대로 두시고 테스트케이스만 변경하면 될 것 같습니다!

교재는 수정해놨습니다 피드백 감사드립니다!!! 🥰

0

테스트 케이스가 잘못 작성된거 같습니다.
저는 1이 맞다고 생각합니다.

공급 1회차 수행

  • 가장 큰 공급량 20 선택

    → stock = 10 + 20 = 30

    → count = 1

  • 이제 stock = 30 >= k = 30

    → while 종료

     

dingcodingco님의 프로필 이미지
dingcodingco
Người chia sẻ kiến thức

JHL 님 답변 감사합니다!! ㅎㅎㅎ 말씀해주신게 정확합니닷

Hình ảnh hồ sơ của dreaming18177639
dreaming18177639

câu hỏi đã được viết

Đặt câu hỏi