1주차부터 3주차까지 알고리즘과 자료구조를 공부하는 주차이다.
오늘은 스택에 대해서 배웠는데 리스트로 스택을 구현 할 수 있다는 것을 오늘 깨달았다. 그래도 나름 전공과라서 어느정도 개념이 잡혀있는줄 알았는데 아니였고 아직 한참 부족한다는것을 알았으니까 더 열심히 공부해야겠다.
스택이란 후입선출(LIFO)이라고도 불리는데 제일 마지막으로 들어간 데이터가 가장 먼저 나오는 데이터이다.
class Node:
def __init__(self, val, next):
self.val = val
self.next = next
class Stack:
def __init__(self):
self.top = None
def is_empty(self):
if self.top is None
def push(self, value):
self.top = Node(val,self.top)
def pop(self):
if self.top is None:
return None
node = self.top
self.top = self.top.next
return node.item
list = []
for i in range(0,5):
list.append(i)
print(list) // [0, 1, 2, 3, 4]
list = [0,1,2,3,4]
for i in range(0,len(list)):
list.pop()
print(list)
Enumerate는 파이썬에서 기본으로 제공하는 라이브러리 함수입니다.
enumerate(iterable, startIndex)
itereable는 반복할 수 있는 개체이며
startIndex는 0부터 루프 끝에 도달할때까지 값이 증가합니다.
list = [1,2,3,4]
for i,d in enumerate(list):
print(i,d) //0 1
1 2
2 3
3 4
Counter란 항목의 개수를 셀 때 사용하는 클래스입니다.
인자 또는 리스트를 넘겨주면 각 항목의 값을 키 값으로 갯수를 알려줍니다.
from collections import Counter
list=[0,0,0,0,1,1,2,2,3,3,3,3]
c = Counter(list)
print(c) //Counter({0: 4, 3: 4, 1: 2, 2: 2})
from collections import Counter
a = "aaabbc"
c = Counter(a)
print(c) //Counter({'a': 3, 'b': 2, 'c': 1})
값이 나오는 순서도 보면 갯수가 많은 순서대로 출력이 되는것을 볼 수 있습니다.