π νλ‘κ·Έλλ¨Έμ€ νΌλ³΄λμΉ μ
- κ°λ¨ν νΌλ³΄λμΉ μ λ¬Έμ μ΄μ§λ§ κ°νΈλμ΄ μ¬κ·λ‘λ νλ¦¬μ§ μλ λ¬Έμ μ΄λ€.
- ν΄κ²° λ² : λ€μ΄λλ―Ή νλ‘κ·Έλλ°
def solution(n):
temp = {1: 1, 2: 1}
for i in range(3, n + 1):
temp[i] = (temp[i - 1] + temp[i - 2]) % 1234567
return temp[n]
π λ€λ₯Έ μ¬λμ 리μ€νΈμ μ μ₯νμ¬μ temp[i].append( ~~)
κ°μ μμΌλ‘ λ¬Έμ νμ΄λ₯Ό νμλλ° λ¬Έμ κ° κ°λ¨νμ¬ μκ΄μ μκ² μ§λ§ μ½λκ° κΈΈμ΄μ§λ§ κ·Έ λ°©μμ΄ μ‘°κΈ λ μ§κ΄μ μΌλ‘ 보μΈλ€.
π μ΄λ°μμ λμ νλ‘κ·Έλλ° λ¬Έμ μ κ·Όμ ν λ 2μ°¨μ λ°°μ΄, dict λ₯Ό λ λ¨Όμ λ μ¬λ¦¬λλ° λ€μν λ°©λ²μΌλ‘ λ μ¬λ €μΌκ² λ€.
π DFS ꡬνν΄ λ³΄κΈ° Stack, Recursion λ κ°μ§ λ°©μ
graph = {
1: [2, 5, 9],
2: [1, 3],
3: [2, 4],
4: [3],
5: [1, 6, 8],
6: [5, 7],
7: [6],
8: [5],
9: [1, 10],
10: [9]
}
π μ¬κ· ꡬν - python
visited = []
def dfs_recursion(adjacent_graph, cur_node, visited_array): # ν¨μ νΈμΆ μ cur_node 1 λμ
visited_array.append(cur_node)
for ad in adjacent_graph[cur_node]:
if ad not in visited_array:
dfs_recursion(adjacent_graph, ad, visited_array)
return
π μ€ν ꡬν - python
def dfs_stack(adjacent_graph, start_node):
stack = [start_node] # μ΄ ν¨μ νΈμΆ μ start_node 1 λμ
visited = []
while stack:
temp = stack.pop()
visited.append(temp)
for ad in adjacent_graph[temp]:
if ad not in visited:
stack.append(ad)
return visited
π μ²μ μκ³ λ¦¬μ¦μ μ νκ³ κ³΅λΆλ₯Ό μμν λ κ°μ₯ μ΄ν΄κ° μλλ κ²μ μ¬κ· μλ€. μ¬κ·λ₯Ό μ΄μ©ν λ¬Έμ νμ΄λ μμ§λ μ¬λ°κ³ ν₯λ―Έκ° μλ€.
μκ°μ΄ μμ΄ stack, queue, heap λ± μλ£ κ΅¬μ‘°λ€μ ꡬνμ λͺ»ν΄λ΄€μλλ° μ΄λ°μμΌλ‘ νλμ© ν΄λ³΄λ κΈ°μ΅μ λ¨κ³ μ’μ κ² κ°λ€.
μ§κΈμ λ€μ΄λλ―Ήνλ‘κ·Έλλ° λ¬Έμ κ° κ°μ₯ μ¬λ―Έ(?) ν₯λ―Έλ‘μμ λ§μ΄ μ€λ€.
λ¬Έμ λ₯Ό λ§λ₯λ¨λ Έμλ μ²μ μκ³ λ¦¬μ¦μ μ νμλμ κ°μ κΈ°λΆμ λ§μ΄ μ€λ€.
κ°λ¨ν΄ 보μ΄μ§λ§ μ΄λ€ μμΌλ‘ μ κ·Όν΄μΌν μ§ κ°μ΄ μμ‘νλ...
λ§μ΄ νλ€λ³΄λ©΄ μ΅μν΄μ§ κ²μ΄λΌ μκ°νλ€ γ γ
- μ€λ λ!
- μ¬μ€ μ΄λ κ² μ°κ³ λ¬Έμ λ₯Ό λ νΌλ€...γ