💫 문제 설명
매개변수
n: 창고에 있는 택배 상자의 개수를 나타내는 정수- 2 ≤
n≤ 100
- 2 ≤
w: 가로로 놓는 상자의 개수를 나타내는 정수- 1 ≤
w≤ 10
- 1 ≤
num: 꺼내려는 택배 상자의 번호를 나타내는 정수- 1 ≤
num≤n
- 1 ≤
→ 꺼내야 하는 상자의 총 개수를 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

답글 남기기