몸과 마음이 건전한 SW 개발자

프로그래머스 Lv2 택배 배달과 수거하기 Python 본문

알고리즘

프로그래머스 Lv2 택배 배달과 수거하기 Python

스위태니 2023. 9. 10. 10:28

2023 KAKAO BLIND RECRUITMENT

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

정답 코드

def solution(cap, n, deliveries, pickups):
    trunk = [0, 0]
    distance = 0
    for idx in range(n-1, -1, -1):
        trunk[0] += deliveries[idx]
        trunk[1] += pickups[idx]
        while trunk[0] > 0 or trunk[1] > 0:
            trunk[0] -= cap
            trunk[1] -= cap
            distance += (idx + 1) * 2
    return distance

느낀점

- 접근 방식은 비슷했는데 그동안 while문의 실행 조건에 대해서 잘 이해하지 못했던 것 같다.

- while문은 조건에 맞으면 실행하는데 위의 방식은 외우는게 좋을 것 같다.

- 그리디인가?