01. Stack
- 후입선출
- 가장 마지막에 들어온 자료가 가장 먼저 나가는 자료 구조
- 뒤로가기
'''
Stack 클래스를 완성하세요.
'''
class Stack:
'''
List를 이용하여 다음의 method들을 작성하세요.
'''
def __init__(self) :
'''
자료를 저장할 공간(배열) myStack을 만듭니다.
'''
self.myStack = []
def push(self, n) :
'''
stack에 정수 n을 넣습니다.
'''
self.myStack.append(n)
def pop(self) :
'''
stack에서 가장 위에 있는 정수를 제거합니다. 만약 stack에 아무 원소가 없다면 아무 일도 하지 않습니다.
'''
if self.empty() == 1:
return
else :
self.myStack.pop()
def size(self) :
'''
stack에 들어 있는 정수의 개수를 return 합니다.
'''
return len(self.myStack)
def empty(self) :
'''
stack이 비어있다면 1, 아니면 0을 return 합니다.
'''
if self.size() == 0:
return 1
else :
return 0
def top(self) :
'''
stack의 가장 위에 있는 정수를 return 합니다. 만약 stack에 들어있는 값이 없을 경우에는 -1을 return 합니다.
'''
if self.empty() ==1:
return -1
else :
return self.myStack[-1]
02. Queue
'''
Queue 클래스를 구현하세요.
'''
class Queue:
'''
List를 이용하여 다음의 method들을 작성하세요.
'''
def __init__(self) :
'''
큐 myQueue을 만듭니다.
'''
self.myQueue = []
def push(self, n) :
'''
queue에 정수 n을 넣습니다.
'''
self.myQueue.append(n)
def pop(self) :
'''
queue에서 가장 앞에 있는 정수를 제거합니다. 만약 queue에 들어있는 값이 없을 경우에는 아무 일도 하지 않습니다.
'''
if self.empty() == 1 :
return
else :
del self.myQueue[0]
def size(self) :
'''
queue에 들어 있는 정수의 개수를 return 합니다.
'''
return len(self.myQueue)
def empty(self) :
'''
queue이 비어있다면 1, 아니면 0을 return 합니다.
'''
if self.size() == 0 :
return 1
else :
return 0
def front(self) :
'''
queue의 가장 앞에 있는 정수를 return 합니다. 만약 queue에 들어있는 값이 없을 경우에는 -1을 return 합니다.
'''
if self.empty() == 1:
return -1
else :
return self.myQueue[0]
def back(self) :
'''
queue의 가장 뒤에 있는 정수를 return 합니다. 만약 queue에 들어있는 값이 없을 경우에는 -1을 return 합니다.
'''
if self.empty() == 1:
return -1
else :
return self.myQueue[-1]