π programmers λ€νΈμν¬ level3 dfs λ¬Έμ
μμ¦ μκ³ λ¦¬μ¦μ λ무 μ νμ΄ λ¨Έλ¦¬κ° κ΅³μ΄μ§ κ² κ°λ€. μλ μκ³ λ¦¬μ¦ νλ©΄ 머리λ λ§λν λλμ΄ λ€κ³ μ§μ€λ μ λμλλ°... μκ°λ³΄λ€ μ€λ κ±Έλ Έλ€. μ¬μ΄κ±° κ°μλ° λ¨Έλ¦¬μμμ μκΎΈ κΌ¬μ¬μ... μ¬κ·λ₯Ό νλ ν λ² μκ°μ΄ κΌ¬μ¬λ²λ¦¬λ©΄ λ€μ κ°λ₯μ μ‘κΈ° μ΄λ €μ΄ κ² κ°λ€ γ γ
- νμ΄
def solution(n, computers): cnt, visited = 0, [] def dfs(index): visited.append(index) for i in range(n): if computers[index][i] == 1 and i not in visited: dfs(i) for i in range(n): if i not in visited: dfs(i) cnt += 1 return cnt
π programmers μ¬νκ²½λ‘ μμ μ λΉμ·ν λ¬Έμ λ₯Ό leetcodeμμ νμμλλ° κΈ°μ΅ λͺ»νλκ±° 보λ λ μμ γ ...
μμ μ νλλ 5μ? 6μμΈκ°? μ§μ§ μ μ‘μ΄μΌλ νμμ΄μ λ§λ§νμλλ° μ§κΈμ μ κ·Ό λ°©μμ΄ μ‘°κΈ μλͺ»λλ€. μλ μ½λκ° μ€ν¨νλ μ΄μ λ λ€μκ³Ό κ°λ€.
ICN -> AAA
ICN -> BBB
BBB -> ICN
μ μΌμ΄μ€κ° μλλλ° λ΄κ° x[0]x[1] κΈ°μ€μΌλ‘ μ λ ¬μ μ« νκ³ resultμ λ£κΈ° λλ¬Έμ κ²°κ³Όκ° λ€λ₯Ό μ λ°μ μλ€. ν리λ μ΄μ λ μμμΌλ μκ°μ΄ λ¦μ κ΄κ³λ‘ λ΄μΌ.. νμ΄μ μ¬λ¦¬λ €κ³ νλ€ γ γ
- 첫 λ²μ§Έ νμ΄
from collections import deque def solution(tickets): queue = deque() start = tickets[0][0] visited = list() result = [start] tickets.sort(key=lambda x:(x[0],x[1])) for i in tickets: if i[0] == start: queue.append(start) break while queue: temp = queue.pop() for ti in tickets: if ti[0] == temp and ti not in visited: visited.append(ti) queue.append(ti[1]) result.append(ti[1]) break return result