알고리즘 연습/구현, 문자열

[Lv.1 / 프로그래머스 / 파이썬] 택배 상자 꺼내기 (2025 프로그래머스 코드챌린지 2차 예선)

김세진 2025. 2. 17. 01:23
반응형

 

 

 

 

프로그래머스

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

programmers.co.kr

 

 

풀이

 

주어진 조건대로 상자를 쌓은 뒤, 해당 지점에서부터 몇 층의 박스가 쌓여있는지 확인하면 된다.

 

def solution(n, w, num):
    # 박스 정리
    MAX_ROW = n//w+1
    boxes = []
    for row in range(MAX_ROW):
        boxes.append([row*w + i if row*w + i <= n else 0 for i in range(1, w+1)][::-1 if row%2==1 else 1])
    
    # 박스 탐색
    for r in range(MAX_ROW):
        for c in range(w):
            if boxes[r][c] != num:
                continue
            
            # 박스 발견
            res = 0
            for i in range(MAX_ROW):
                res += 1
                r+=1
                if r >= MAX_ROW:
                    return res
                if boxes[r][c] == 0:
                    return res

 

 

 

 

반응형