C++로만 알고리즘 문제를 풀던 나.
C++ API의 옛스러움과 혼란스러움에 지쳐 Python으로 넘어왔다.
이 문서는 파이썬 초보가 알고리즘을 풀 때 알아두어야 할 지식들을 하나씩 삽질해가며 모아가는 공간이다.
1. stack
Python에서 stack은 따로 자료구조 없이 list를 응용하면 된다.
1) PUSH
stack = ['a', 'b', 'c']
stack.append('d') # stack의 push 역할로 list의 append() 함수 사용
print(stack)
# output
# ['a', 'b', 'c', 'd']
2) POP
stack = ['a', 'b', 'c']
pop = stack.pop() # 맨 마지막 (stack으로 따지자면 제일 위) 원소를 제거하면서 해당 값을 리턴한다.
print('pop: ' + pop)
print(stack)
# output
# pop: c
# ['a', 'b']
3) TOP
stack = ['a', 'b', 'c']
top = stack[-1] # 맨 마지막에 있는 원소를 꺼낸다.
# stack[-1] 사용 시 주의할 점은
# stack이 비어있는 경우 out of range 오류가 뜨기 때문에
# 아래처럼 stack의 length 체크를 해주는 게 좋다.
if len(stack) > 0: # stack의 length 체크
print('top: ' + stack[-1])
# output
# top: c
반응형
'Algorithm > Programmers' 카테고리의 다른 글
알고리즘 풀이를 위한 Python 사용법 - 기본편 (2) | 2022.10.03 |
---|---|
C++ 에서 hash 쓸 땐 unordered_map !! (0) | 2022.09.30 |