파이썬(20)
-
[알고리즘] DFS, BFS 구현 (Python)
DFS """ 1 / | \ 2 3 4 | | 5 | / \ / 6 7 """ graph = { 1: [2,3,4], 2: [5], 3: [5], 4: [], 5: [6,7], 6: [], 7: [3], } def recursive_dfs(v, discovered = []): discovered.append(v) # 시작 정점 방문 for w in graph[v]: if not w in discovered: # 방문 하지 않았으면 discovered = recursive_dfs(w, discovered) return discovered def iterative_dfs(start_v): discovered = [] stack = [start_v] while stack: v = stack.pop() if v..
2021.01.27 -
[Python] zip()
Python 내장함수, zip(*iterables) zip(*iterables) zip()은 동일한 개수로 이루어진 자료형을 묶어주는 역할을 한다. 제너레이터로 리턴 되기 때문에, list나 dic 등 으로 변환 해 주어야 한다. list1 = [1,2,3] list2 = ["홍길동", "김철수", "박미애"] zip_list = zip(list1, list2) print(zip_list, type(zip_list)) # 제너레이터로 리턴 print(list(zip_list)) # 리스트로 변환 # dictionary로 변환 dic ={} for i, s in zip(list1, list2): dic[i] = s print(dic) """ [(1, '홍길동'), (2, '김철수'), (3, '박미애')]..
2021.01.26 -
[Python] heapq 모듈
heapq 모듈 힙 자료구조 heapq모듈은 이진 트리(binary tree)기반의 최소 힙(min heap)자료구조 제공. min heap을 사용하면 원소들이 항상 정렬된 상태로 삽입, 삭제되며 min heap에서 가장 작은 값은 언제나 인덱스 0, 즉 이진트리의 루트에 위치. heap 자료구조를 이용해 데이터를 정렬하려면 heap[0]를 루프를 돌아 heappop() 해주면 된다. 모듈 임포트 import heapq 최소 힙 (min heap) 생성 heap = [] 별개의 자료구조가 아닌 리스트를 힙처럼 다룰 수 있도록 하는 것 힙에 원소 추가 - heappush() heap모듈의 heappush()함수를 이용하여 원소를 추가 할 수 있다. 첫번째 인자는 원소를 추가할 대상 리스트이며 두번빼 인자는..
2021.01.19 -
[자료구조] Circle Deque (원형 덱) 구현
Circle Deque (원형 덱) class MyCircularDeque: def __init__(self, k: int): self.q = [None] * (k+1) self.max = k+1 self.front = 0 self.rear = 0 def insert_front(self, value: int): if self.is_full(): print('Deque is Full') else: self.q[self.front] = value self.front = (self.front - 1 + self.max) % self.max def insert_last(self, value: int): if self.is_full(): print('Deque is Full') else: self.rear = (..
2021.01.19 -
[Python] Call by.. What?
Python은 Call by assignment 이다. Call by assignment (Call by object reference) 파이썬은 immutable(불변) 자료형일 경우 call by value 처럼 처리되고, mutable(가변) 자료형일 경우 call by reference처럼 처리 된다. 이를 call by assignment 또는 call by object reference 라고 부른다. call by value, reference 파이썬의 객체(object)에 대한 이해 파이썬은 모든것이 객체(Object)이다. 라는 말, 파이썬을 배운 사람이라면 한번쯤은 들어 봤을 것이다. 과연 무슨 뜻일까? a = 10 파이썬에선 a에 10이 할당되는 것이 아니라, a가 10이라는 상수 객체..
2021.01.15 -
[Python] divmod()
divmod() ## 같은 의미 divmod(a, b) (a // b, a % b) 몫과 나머지를 tuple(튜플) 로 return한다. # 둘 다 양수 print(divmod(10, 3), '\n') # 음수가 있을 경우 print(divmod(10, -3)) print(divmod(-10, 3)) print(divmod(-10, -3), '\n') # 둘중 하나 실수 print(divmod(10.6, 3)) """ (3, 1) (-4, -2) (-4, 2) (3, -1) (3.0, 1.5999999999999996) """
2021.01.14