Coolog 🖥️

/

[Coding Test] 택배 상자 꺼내기 ⭐


🐳2025 프로그래머스 코드챌린지 2차 예선 택배 상자 꺼내기 ⭐ 코딩 테스트 문제를 풀고 정리한 글입니다 🐳

💫 문제 설명

매개변수

  • n : 창고에 있는 택배 상자의 개수를 나타내는 정수
    • 2 ≤ n ≤ 100
  • w : 가로로 놓는 상자의 개수를 나타내는 정수
    • 1 ≤ w ≤ 10
  • num : 꺼내려는 택배 상자의 번호를 나타내는 정수
    • 1 ≤ num ≤ n

꺼내야 하는 상자의 총 개수를 return 하도록 solution 함수를 완성


입출력 예

n w num result
22 6 8 3

아래 예시 그림처럼 n개의 택배 상자를 모두 놓을 때까지 한 층에 w개씩 상자를 쌓습니다.

택배 상자 A를 꺼내려면 먼저 A 위에 있는 다른 모든 상자를 꺼내야 A를 꺼낼 수 있습니다.
예를 들어, 위 그림에서 8번 상자를 꺼내려면 먼저 20번, 17번 상자를 꺼내야 합니다.
꺼내야 하는 상자의 총개수는 8번 상자를 포함해 3개입니다.

💫 코드

def solution(n, w, num):
    a = n%w

    b = n//w 
    if a != 0:
        b += 1

    d = num // w
    if num%w != 0:
        d += 1

    e = d * w - num + 1

    if b % 2 == 0:
        if d % 2 == 0:
            if e > w-a:
                i = 0
            else:
                i = -1
        else:
            if e > a:
                i = -1
            else:
                i = 0
    else:
        if d % 2 == 0:
            if e > a:
                i = -1
            else:
                i = 0
        else:
            if e > w-a:
                i = 0
            else:
                i = -1

    if a == 0:
        answer = b - d + 1
    else:
        answer = b + i - d + 1

    return answer

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최근 게시물