https://school.programmers.co.kr/learn/courses/30/lessons/131704
내 풀이
def solution(order):
temp = []
i = 1
now = 0
while i != len(order)+1:
temp.append(i)
while temp[-1] == order[now]:
now += 1
temp.pop()
if len(temp) == 0:
break
i += 1
return now
처음에 문제가 잘 이해가 안됐다.
[1,2,3,4,5]의 순서로 있는택배를 order에서 요청한 대로 쌓아야하는데, 그게 불가능하다면 최대한으로 가능한 숫자를 리턴한다
그니까 1 2 3 4 5 -> 4 3 1 2 5 의 순서대로 쌓으라는 말이다
4번을 최초로 쌓으라했으니 1 2 3 번 까지 스택구조의 임시컨테이너에 넣어놓고 4번을 택배트럭에 싣는다.
다음 3번을 쌓아야하니 임시컨테이너에서 3번을 꺼낸다(스택구조) 참고로 pop은 리스트에서 젤 뒤에 요소를 삭제하고 그 값을 리턴한다.
만약에 임시컨테이너에 더 쌓여진게 없으면 모두 택배에 넣어진거니까 break해서 빠져나온다.
다른사람의 풀이
https://velog.io/@namkun/프로그래머스-lv2-택배상자
'취준 > 프로그래머스' 카테고리의 다른 글
롤케이크 자르기 - 파이썬 (0) | 2022.11.02 |
---|---|
2개 이하로 다른 비트 - 파이썬 (0) | 2022.10.17 |
파일명 정렬 - 프로그래머스 (0) | 2022.10.11 |
n^2 배열 자르기 - 파이썬 (0) | 2022.10.11 |
방문 길이 - 파이썬 (1) | 2022.10.05 |