Algorithm
[알고리즘] 기준에 따라 정렬(sort/sorted) - 파이썬(Python)
◈ sort - 리스트.sort() - 반환 값 없이 오름차순(기본값)으로 정렬 - 원래의 리스트가 정렬된 값으로 변형 array = [5, 2, 4, 3, 1] array.sort() print(array) # [1, 2, 3, 4, 5] ◈ sorted - sorted(리스트) - 오름차순(기본값)으로 정렬된 리스트 반환 - 원래의 리스트는 변형 X array = [5, 2, 4, 3, 1] sorted_array = sorted(array) print(sorted_array) # [1, 2, 3, 4, 5] parameter 1. reverse - 내림차순 정렬 array.sort(reverse=True) # [5, 4, 3, 2, 1] sorted_array = sorted(array, rever..
[알고리즘] 범위를 반씩 좁혀가는 이진 탐색 - 파이썬(Python)
순차 탐색 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 리스트의 첫 번째 원소부터 찾고자 하는 데이터와 일치하는지 확인하여 일치하면 탐색 종료, 일치하지 않으면 다음 원소로 이동한다. # 순차 탐색 def sequential_search(n, target, array): for i in range(n): if array[i] == target: return i+1 # 현재 위치 반환 (-번째) array = ['S', 'T', 'A', 'R'] # 임의 지정 리스트 print("리스트 속 A의 위치는 " + sequential_search(len(array), 'A', array) + "입니다.") # 탐색 결과 출력 이진 탐색 리스트 내의 데이터가 정렬..
[알고리즘] 그래프 탐색을 위한 DFS와 BFS - 파이썬(Python)
그래프 표현 그래프는 노드(Node)와 간선(Edge)로 표현되며 이때 노드를 정점(Vertex)라고도 한다. 프로그래밍에서 그래프는 '인접 행렬'과 '인접 리스트' 2가지 방식으로 표현할 수 있다. 인접 행렬 : 2차원 배열로 그래프의 연결관계를 표현하는 방식 - 각 노드가 연결된 형태를 기록하여 저장 INF = 999999999 # 무한의 비용 선언 # 2차원 리스트를 통해 인접 행렬 표현 graph = [ [0, 7, 5], [7, 0, INF], [5, INF, 0] ] print(graph) 인접 리스트 : 리스트로 그래프의 연결관계를 표현하는 방식 - 모든 노드에 연결된 노드에 대한 정보를 차례대로 연결하여 저장 # 행이 3개인 2차원 리스트로 인접 리스트 표현 graph = [[] for _..