기타/Python 문법

[Python / 자료구조] Stack &Queue

배발자 2022. 3. 28.
반응형

C++ 언어로 코테를 준비하다가 카** 와 라* 같은 기업에서 문제를 참 이상하게(?) 준다. 

입력값을 문자열 통째로 주고 일일히 쪼개서 해당 값을 분리 시켜야한다. 

그래서 본인은 해당 문제들을 좀 더 수월히 하고자 파이썬이라는 언어를 포스팅 하기러 마음 먹었다

 

오늘 포스팅 할 주제는 Stack 과 Queue 를 포스팅하려고한다. 

C++ 에서는 queue, stack 이라는 자료구조를 include 해야하는데 파이썬은 찾아보니까 

리스트에서 모든게 해결된다는 점이 신기했다. 

 

Stack은 쉽게 말해서 먼저 넣은 값이 제일 나중에 꺼내지는 구조이다. 

프링글스를 생각해보자. 

 

통 안에 과자를 하나씩 담고 나서 꺼낼때는 제일 나중에 들어간 놈이 먼저 나오게 된다. 

 

반대로, 큐는 과자를 하나씩 담고 나서 바닥에 있는 밑부분에 뚜껑을 열어서 제일 먼저 들어간놈이 

나오게 되는 구조이다. 

 

코드로 한번 알아보자. 

 

<Stack>

#Stack

a=[1,2,3,4,5]   
a.append(6) #리스트 뒤에 6 추가
print(a) # 6 출력

a.pop() # 6 pop()
print(a)# 1,2,3,4,5

b = a.pop() # a 끝 값 b에 저장. pop
print(a) # 1,2,3,4
print(b) # 5

message = input("list 입력 : ") # 하나하나 분리
message_list = list(message)
print(message_list)

for i in range(len(message_list)):
    b = message_list.pop()
    print(b)

<Queue>

#Queue
a = [1,2,3,4,5]
a.append(6)
print(a)

a.pop(0)#앞에꺼 하나 pop
print(a)

a.pop(0)
print(a)

반응형

댓글