https://school.programmers.co.kr/learn/courses/30/lessons/389478
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드 & 풀이
def solution(n, w, num):
boxs = [[] for _ in range(w)]
box_num = 0
direction = 1 # 1이면 오른쪽, -1이면 왼쪽
while box_num < n:
for idx in range(0, w, direction) if direction == 1 else range(w - 1, -1, -1):
box_num += 1
boxs[idx].append(box_num)
if box_num == n:
break
direction *= -1 # 방향 전환
for values in boxs:
if num in values:
return len(values) - values.index(num)
return 0
어떻게 하면 왔다 갔다 하는 것을 효율적으로 할 수 있을까 고민했다.
위의 코드보다 좋은 방식이 있으면
추천 부탁드립니다.
풀이 과정은 간단합니다.
각 열마다 박스를 저장하고
그 박스들의 묶음 안에 찾는 박스가 있으면
위치를 찾아 반환합니다.
728x90