정렬(sort)
버블정렬(bubble sort)* 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘 데이터가 네 개일때 [1,9,3,2]1차 순회1과 9비교, 자리바꿈없음 [1,9,3,2]9와 3비교, 자리바꿈 [1,3,9,2]9와 2비교, 자리바꿈 [1,3,2,9]2차 순회1과 3비교, 자리바꿈 없음 [1,3,2,9]3과 2비교, 자리바꿈 [1,2,3,9]3와 9 비교, 자리바꿈 없음 [1,2,3,9]3차 순회1과 2비교, 자리바꿈 없음 [1,2,3,9]2와 3비교, 자리바꿈 없음 [1,2,3,9]3과 9비교, 자리바꿈 없음 [1,2,3,9] * n개의 리스트가 있는 경우 최대 n-1번의 로직을 적용* 로직을 1번 적용할때마다 가장 큰 숫자가 뒤에서부터 1개씩..
BFS(너비 우선 탐색)
스택을 이용하는 DFS와 달리 BFS는 반복 구조를 구현할 때 큐를 사용한다. 재귀로 구현 불가 큐를 이용하는 반복구현만 가능하다. graph = { 'A': ['B', 'C'], 'B': ['A', 'D'], 'C': ['A', 'G', 'H', 'I'], 'D': ['B', 'E', 'F'], 'E': ['D'], 'F': ['D'], 'G': ['C'], 'H': ['C'], 'I': ['C', 'J'], 'J': ['I'] } BFS 구현(큐 2개 사용) visited = deque() need_visited = deque() need_visited.append(list(graph.keys())[0]) 첫번째 키 값인 'A'를 먼저 방문이 필요한 큐에 넣어준다. while need_visited:..