본문 바로가기

알고리즘10

1이 될때까지. - 그리디 알고리즘.(n을 k로 나누거나, n을 1로빼는 연산만 가능할때 n이 1이 되는 최소 연산횟수.) - 다이나믹 알고리즘(x에서 1을 빼거나, 2나 3이나 5로 나누는 연산이 가능한 경우, x가 1이 되는 최소연산횟수.) - 위에서 d[i]에 d[i-1], d[i//2] ,... 등에 1을 더하는건 그 1을 뺴거나 2,3,5로 나누는 연산을 하는 횟수를 포함시킨다는 뜻. 2022. 7. 2.
DFS / BFS http://ejklike.github.io/2018/01/05/bfs-and-dfs.html Eunji Kim @ CAU - 파이썬을 사용한 그래프의 너비 우선 탐색과 깊이 우선 탐색 구현 아래와 같은 그래프가 있다고 가정하자. 노드 A에서 시작하여 그래프의 모든 노드를 방문하려면 어떻게 해야 할까? ejklike.github.io Python으로 DFS 구현하기 https://paper-ship.tistory.com/2 Python으로 DFS 구현하기 Python으로 DFS 구현하기 BFS에 이어 DFS(Depth First Search)를 파이썬으로 구현하는 방법이다. 2018/02/03 - [프로그래밍/알고리즘] - Python으로 BFS 구현하기 DFS는 깊이 우선 탐색이라는 뜻으로, 말 그대로.. 2022. 6. 29.
피보나치 수열 구하기-파이썬 def fibo2(num): '''루프를 이용한 피보나치 수열''' n1, n2, n3 = None, None, None for i in range(0, num): if i==0: n1=0 print(0, end=', ') elif i==1: n2=1 print(1, end=', ') else: n3 = n1 + n2 print(n3, end=', ') n1 = n2 n2 = n3 print() fibo2(10) def 피보나치(n): #재귀를 이용한 방식 if n 2020. 12. 13.
팩토리얼 구하기-파이썬 def 팩토리얼(x): #루프를 이용한 방식 res=1 for i in range(x, 0, -1): res*=i return res print(팩토리얼(5)) def 팩토리얼(n): #재귀를 이용한 방식 if n==1: return 1 else: print(n,'*팩토리얼(',n-1,')') return n*팩토리얼(n-1) print(팩토리얼(5)) 2020. 12. 13.