[TIL_Carrotww] 13 - 22/09/16

μœ ν˜•μ„Β·2022λ…„ 9μ›” 16일
0

TIL

λͺ©λ‘ 보기
15/138
post-thumbnail

πŸ“Carrotww의 μ½”λ”© 기둝μž₯

🧲 μ•Œκ³ λ¦¬μ¦˜

πŸ” ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ ν”Όλ³΄λ‚˜μΉ˜ 수

  • κ°„λ‹¨ν•œ ν”Όλ³΄λ‚˜μΉ˜ 수 λ¬Έμ œμ΄μ§€λ§Œ κ°œνŽΈλ˜μ–΄ μž¬κ·€λ‘œλŠ” 풀리지 μ•ŠλŠ” λ¬Έμ œμ΄λ‹€.
  • ν•΄κ²° 법 : λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ°
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

πŸ” 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 λ“± 자료 ꡬ쑰듀을 κ΅¬ν˜„μ„ λͺ»ν•΄λ΄€μ—ˆλŠ”데 μ΄λŸ°μ‹μœΌλ‘œ ν•˜λ‚˜μ”© ν•΄λ³΄λ‹ˆ 기얡에 남고 쒋은 것 κ°™λ‹€.
μ§€κΈˆμ€ λ‹€μ΄λ‚˜λ―Ήν”„λ‘œκ·Έλž˜λ° λ¬Έμ œκ°€ κ°€μž₯ 재미(?) ν₯λ―Έλ‘œμ›€μ„ 많이 μ€€λ‹€.
문제λ₯Ό 맞λ‹₯λœ¨λ Έμ„λ•Œ 처음 μ•Œκ³ λ¦¬μ¦˜μ„ μ ‘ν–ˆμ„λ•Œμ™€ 같은 기뢄을 많이 μ€€λ‹€.
간단해 λ³΄μ΄μ§€λ§Œ μ–΄λ–€ μ‹μœΌλ‘œ 접근해야할지 감이 μ•ˆμž‘νžˆλŠ”...
많이 풀닀보면 μ΅μˆ™ν•΄μ§ˆ 것이라 μƒκ°ν•œλ‹€ γ…Žγ…Ž

  • 였늘 끝!
  • 사싀 μ΄λ ‡κ²Œ μ“°κ³  문제λ₯Ό 또 ν‘Όλ‹€...γ…Ž
profile
Carrot_hyeong

0개의 λŒ“κΈ€