코테풀이/프로그래머스

[LV. 1] 택배 상자 꺼내기

miimu 2025. 5. 10. 15:24

https://school.programmers.co.kr/learn/courses/30/lessons/389478

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(n, w, num):
    answer = 0

    now_num = num
    while now_num <= n :
        if now_num % w == 0 :
            now_num += 1
        else :
            now_num = now_num + 2 * (w - (now_num % w)) + 1
        answer += 1

    return answer

택배 상자 쌓는 순서

아이디어

상자를 꺼내야 하는 'num'부터 윗 상자로 올라가며 세보는 방식.

예를 들어, '3'을 꺼내야 하면 그 위인 '10', '15', '22'를 계산하며 올라가기


열의 수를 나타내는 w

꺼내야 하는 박스 num

 

num의 바로 윗행 박스 숫자와의 관계는 num을 w로 나눈 나머지 값의 두 배에 + 1을 한 값이다.

num + 2 * (w - (num % w)) + 1

예외로, num이나 num의 윗 상자 번호가 w의 배수 숫자가 될 경우 +1만 해주어야 한다.

'코테풀이 > 프로그래머스' 카테고리의 다른 글

[PCCP 기출문제] 1번 / 동영상 재생기  (0) 2025.05.12
[LV. 1] 유연근무제  (0) 2025.05.10