🌝BFS : 너비우선탐색 가까운 노드부터 탐색하는 알고리즘 선입선출 방식인 큐 자료구조를 이용 🌜동작 방식 1. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다. 2. 큐에서 노드를 꺼내 해당 노드의 인접 노드 중에서 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리를 한다. 3. 2번의 과정을 더 이상 수행할 수 없을 때까지 반복한다. 🌜탐색 소요 시간 : O(N) from collections import deque def bfs(graph, start, visited): queue = deque([start]) visited[start] = True while queue: v=queue.popleft() print(v,end='') for i in graph[v]: if not visited[i..
👉 파이썬 리스트를 stack 자료구조로 사용하기 Stack : LIFO 구조 : last in, first out append(x) 함수 : 리스트의 맨 마지막에 x값을 추가해주는 함수 pop() 함수 : 리스트의 맨 마지막에 값을 반환하고, 리스트에서 그 값을 제거해주는 함수 👉 파이썬 리스트 특정 값 확인 (in, not in) (확인할 값) in [list] : 확인할 값이 리스트 내부에 있으면 true를 반환 , 없으면 false반환 (확인할 값) not in [list] : 확인할 값이 리스트 내부에 들어있지 않을때 true, 값이 있을때 false 반환 👉 파이썬 리스트 생성 range 이용 (comprehension) Comprehension : 규칙이 있는 걸 간단하게 리스트로 만들어주는..
리스트란 ? 시퀀스 데이터 : 데이터에 순서가 존재하는 데이터 index를 이용해서 리스트[index]로 한번에 접근 가능하다 리스트를 만드는 방법 👉대괄호 이용 a = [1,2,3] b = ['a','b','c'] c = [] #요소가 없는 비어있는 리스트 👉list()를 이용한 방법 d = list() 👉2중 for 문으로 2차원 배열 선언 array = [[0 for col in range(n) for row in range(n)] 👉연산자와 for 문으로 2차원 배열 선언 array = [ [0] * n for _ in range(n)] 👉연산자 * 로 2중 리스트 선언 ❌ array = [ [0] * n ] * n ] 이 방법으로 배열을 선언하게 되면, 단순히 요소를 복사하게 되는 얕은 복사가..