개발 블로그
[Programmers/파이썬] 프로그래머스(Lv.2) 택배상자 문제풀이 본문
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/131704
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
사고 흐름
1. 컨테이너, 보조 컨테이너 둘 다 스택을 사용해야겠다
2. 택배아저씨가 원하는 원소를 컨테이너에서 찾을 수 있는가? 를 기준으로 나눠야겠다
2-1. 택배아저씨가 원하는 박스가 컨테이너 첫번째 또는 보조 컨테이너 첫번째에 있다
2-2. 없다면? -> 컨테이너 박스를 보조 컨테이너로 옮긴다.
문제 핵심과 알고리즘
스택 이용
def solution(order):
n = len(order)
ts = []
s = [i for i in range(n,0,-1)]
i = 0
while 1 :
if s and s[-1]==order[i] : # 컨테이너에서 가져감
s.pop()
i+=1
elif ts and ts[-1]==order[i] : #보조컨테이너에서 가져감
ts.pop()
i+=1
else : #택배순서랑 안맞아서 보조컨테이너로 이동
if s :
ts.append(s.pop())
else :
break
return i
문제 풀면서 헤맸던 부분
문제 잘못 이해함.
총평
(소요시간: 20분) 사실 처음에 문제를 잘못이해해서 이상하게 돌아갔다. 이렇게 문제 자체를 이해못했으면 일단 다른 문제로 넘어갔다가 오는 것도 좋다.
'Algorithm' 카테고리의 다른 글
[Programmers/파이썬] 프로그래머스(Lv.2) 우박수열 정적분 문제풀이 (0) | 2024.08.23 |
---|---|
[Programmers/파이썬] 프로그래머스(Lv.1) 삼총사 문제풀이 (0) | 2024.08.22 |
[Programmers/파이썬] 프로그래머스(Lv.2) 연속 부분 수열 합의 개수 문제풀이 (0) | 2024.08.22 |
[Programmers/파이썬] 프로그래머스(Lv.2) 전력망을 둘로 나누기 문제풀이 (0) | 2024.08.20 |
[Programmers/파이썬] 프로그래머스(Lv.2) 행렬 테두리 회전하기 문제풀이 (0) | 2024.08.18 |