개발/Python
python으로 스택 문제 시도
yehey
2021. 1. 21. 22:35
프로그래머스로 python 스택문제, 해시 함수 이용하는 문제를 시도해봤다.
학교 강의 시간에 데이터 구조로 스택과 해시 함수를 C언어로 사용해보았기 때문에 잘 풀 수 있을거라고 생각했는데...
착각이었다...
python의 문법은 C와 너무 많이 달랐고, 나는 python은 2019년도에 들었던 강의가 마지막이기 때문에 배운것도 남아있지 않고 오히려 다 지워진 상태에서 막 시도한 것 같다.
그래도 시도하면서 파이썬 문법을 점점 알아갈 수 있겠지..!
처음에 생각했던 스택 구조는 아래와 같았다.
class Stacklist:
def __init__(self,s_size):
self.size=s_size
self.top=-1
self.slist=[0 for a in range(self.size)]
def is_empty(self):
if (self.top==-1):
return True
else:
return False
def pop(self):
self.top-=1
def push(self,price):
if (self.is_empty()):
self.top+=1
self.slist[0]=price
else:
self.top+=1
self.slist[self.top]=price
C를 바탕으로 연습했던 스택 구조를 생각하면서 python으로 Stacklist를 만들었다.
하지만 파이썬에서는 굳이 복잡하게 만들지 않아도 됐다.
class Stack:
def __init__():
self.top=[] # top을 리스트로 선언한다.
def is_empty(self):
if(len(self.top)==0):
return True
else:
return False
def pop(self):
if(self.is_empty()):
print('error')
exit(1)
else:
return self.top.pop()
def push(self, item):
self.top.append(item)
def peek(self):
return self.top.pop(-1)
이렇게 열심히 자료구조를 생각해냈지만 결국 문제는 풀지 못했다....ㅠ