개-발/앓앓고리즘(Feat.Python)

DFS (Depth First Search) 깊이 탐색 - 드라마를 첫화부터 끝까지 한번에 다 본다.(한 놈만 팬다.) 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 장점 : 최선의 경우 제일 빠르다. 단점 : 찾은 답이 최적이 아닐 가능 성이 있다. 최악의 경우 제일 느리다. 방법 1. 루트 노드부터 시작한다. 2. 현재 방문한 노드를 visited에 추가한다. 3. 현재 방문한 노드와 인접한 노드 중 방문하지 않은 노드에 방문한다. 4. 2부터 반복한다 BFS (Breadth First Search) 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사 해아 한다는 것이다. 너비 탐색- 여러 드라마를 하나씩 보면서 끝까지 본다.(한대씩 때려본다.) 장점 : 최적의 답을 찾는..
아주 갱장히 중요 또 중요한 개념 4.병합(merge) array_a = [1, 2, 3, 5] array_b = [4, 6, 7, 8] def merge(array1, array2): array_c = [] # 배열 a,b를 비교후 최소값을 c 에 넣는다 array1_index = 0 # 0번쨰 순서를 정의해준다. array2_index = 0 while array1_index < len(array1) and array2_index < len(array2) :#인덱스의번호가 배열의 길이보다 작아지면 끝난다(배열에 숫자가 없으면) if array1[array1_index] < array2[array2_index] : #어레이1 n번째와 어레이2 n번째비교 array_c.append(array1[array..
정렬 .sort() 1. 버블정렬 하나씩 비교하여 자리를 바꾼다 bubble sort) 버블정렬은 인접한 두 수를 비교하여 큰 수를 뒤로 보내는 간단한 정렬 알고리즘으로 다른 정렬 알고리즘에 비해 속도가 상당히 느린 편이지만, 코드가 단순하기 때문에 자주 사용됩니다. 예시) input = [4, 6, 2, 9, 1] def bubble_sort(array): n = len(array) #array의 길이만큼 n에 넣습니다 for a in range(n-1): #array의 길이 -1 번만 비교해보면 되니까. for b in range(n - a - 1): #-1 을하는 이유: 0부터 돌아줘야 하니까 and 마지막원소는 비교할 대상이 없으니깐 if array[b] > array[b+1]: #초기값이 n=5..
소수 나열하기 *소수란 ? 나눌수 있는 값이 1 혹은 나 자신말고 없는 숫자 ex) 1 , 2 , 3 = 소수 4 = 1 , 2 , 4 False 5 = 1 , 5 True def primenumber(number): prime = [1] #1은 무조건 포함이 되기 때문에 미리 추가해준다. for a in range(2, number + 1): # 2 ~ 입력값까지의 반복 check = True # check 소수를 판별하는 체크 변수에 합성수가 나오지 않는다면 prime 배열에 추가해준다. for i in range(2, a): # 2 ~ a 까지의 합성수 판별 if a % i == 0: check = False # 2~a 값중 약수가 하나라도 나오면 false 바꿔서 합성수 판별 if check: p..
imSoo
'개-발/앓앓고리즘(Feat.Python)' 카테고리의 글 목록