반응형
import sys
class MyList(list):
def push(self, x):
self.append(x)
def pop(self):
return super(MyList, self).pop() if self.size() else -1
def size(self):
return len(self)
def empty(self):
return int(self.size() == 0)
def top(self):
return self[-1] if self.size() else -1
def main():
n = int(sys.stdin.readline())
mylist = MyList()
for _ in range(n):
command = sys.stdin.readline().split()
if len(command) == 1:
ret = eval(f"mylist.{command[0]}()")
else:
ret = eval(f'mylist.{command[0]}({command[1]})')
if ret != None:
print(ret)
main()
후덜덜
스터디원 분 코든데 엄청 잘 짜심
eval (f 문자열 형태의 함수를 실행할 수 있다.
command[0] = 문자열 이걸 push라는 형태로 인식할 수 있게 함 그래서 mylist.pop()가되는 거임
else
의 경우에는 push 1 과 같이 두개 들어오는거 인식하게 하는 코드
sys.stdin.readline() 라인을 읽어낸다. int n
commnad 역시 sys.stdin.readline()으로 읽어내고 split()으로 줄마다 자르는 듯? 바로 배열 만들어지나봄
에서는 어케 하는거지 super()
super(Mylist, self).pop() -> self.pop()으로 지우면 이런 에러가 나타난다.
내 생각엔 Mylist(list) 할 때 부모 클래스를 불러온듯?
근데 이 클래스 list가 내장클래스인지..
#Stack class 정의
class Stack:
def __init__(self):
self.len = 0
self.list = []
def push(self, num):
self.list.append(num)
self.len += 1
def pop(self):
if self.size() == 0:
return -1
pop_result = self.list[self.len - 1]
del self.list[self.len - 1]
self.len -= 1
return pop_result
def size(self):
return self.len
def empty(self):
return 1 if self.len == 0 else 0
def top(self):
return self.list[-1] if self.size() != 0 else -1
num = int(input())
stack = Stack()
while(num > 0):
num -= 1
input_split = input().split()
op = input_split[0]
if op == "push":
stack.push(input_split[1])
elif op == "pop":
print(stack.pop())
elif op == "size":
print(stack.size())
elif op == "empty":
print(stack.empty())
elif op == "top":
print(stack.top())
else:
print("unacceptable op")
다른 블로그의 파이썬 코드 : https://chunghyup.tistory.com/37
파이썬은 기본이 배열이기 때문에 리스트 클래스가 따로 있다. list() 신기!!
반응형
'파이썬' 카테고리의 다른 글
[장고&파이썬웹] urllib.request 모듈 예제 재작성 (0) | 2020.09.06 |
---|---|
홍련화 가사 html for li in lis with xpath (0) | 2020.08.29 |
파이썬 네이버 블로그 크롤링 더 깔끔한 코드! (0) | 2020.08.26 |
python 이용한 네이버 블로그 탑 100개 웹 크롤링 - .format(page) (0) | 2020.08.26 |
파이썬 웹크롤링 연습 : 알고리즘 기초 사이트 : get text (0) | 2020.08.24 |
파이썬 웹 크롤링 3. find_all, import re, get text (0) | 2020.08.24 |
파이썬 웹 크롤링(Web Crawling) 2. html긁어모으기/태그검색 (3) | 2020.08.24 |
파이썬 웹 크롤링(Web Crawling) 1. 파이썬 pip설치 및 옵션 (0) | 2020.08.24 |