μ¬ν κ²½λ‘ μ°ΎκΈ° ν΄μ€
λΉν ν°μΌλ€λ‘ κ°λ₯ν μ¬ν κ²½λ‘λ₯Ό μ°Ύλ ν¨μλ₯Ό μμ±ν©λλ€.
μ΄ κ³Όμ μ μ¬κ· νΈμΆ
κ³Ό κΉμ΄ μ°μ νμ(DFS)
μ μ¬μ©νμ¬ κ΅¬νλ©λλ€.
ν¨μ ꡬν
-
κ·Έλν μ΄κΈ°ν
:-
κ° ν°μΌμ μΆλ°μ§μ λͺ©μ μ§λ₯Ό μ¬μ©νμ¬ κ·Έλνλ₯Ό μμ±ν©λλ€.
-
μ΄ κ·Έλνλ κ° κ³΅νμμ μΆλ°νμ¬ λλ¬ν μ μλ λͺ¨λ λͺ©μ μ§λ₯Ό 리μ€νΈλ‘ μ μ₯ν©λλ€.
-
-
ν°μΌ μ λ ¬
:- κ° κ³΅νμμ μΆλ°νλ ν°μΌλ€μ μμμΌλ‘ μ λ ¬ν©λλ€. μ΄λ κ² νλ©΄ DFS νμ μ μνλ²³ μμΌλ‘ κ°μ₯ λΉ λ₯Έ κ²½λ‘λ₯Ό μ°μ μ μΌλ‘ νμν©λλ€.
-
DFS ν¨μ ꡬν
:-
μ¬κ· ν¨μ
dfs
λ₯Ό μ μν©λλ€. μ΄ ν¨μλ νμ¬ κ³΅νμμ μΆλ°νμ¬ κ°λ₯ν λͺ¨λ κ²½λ‘λ₯Ό νμν©λλ€. -
νμμ΄ λλ νμλ κ²½λ‘λ₯Ό
route
리μ€νΈμ μΆκ°ν©λλ€.
-
-
μ΅μ’ κ²½λ‘ κ³μ°
:-
ICN
곡νμμ μμνμ¬dfs
ν¨μλ₯Ό νΈμΆν©λλ€. -
κ²½λ‘λ μμμΌλ‘ μ μ₯λλ―λ‘, μ΅μ’ κ²°κ³Όλ₯Ό λ°ννκΈ° μ μ 리μ€νΈλ₯Ό λ€μ§μ΅λλ€.
-
def solution(tickets): graph = {} # κ·Έλν μ΄κΈ°ν for start, end in tickets: graph.setdefault(start, []).append(end) # μΆλ°μ§μ λͺ©μ μ§ μ μΆκ° graph.setdefault(end, []) # ν°μΌ μ λ ¬ for airport in graph: graph[airport].sort(reverse=True) route = [] # κ²½λ‘ μ μ₯ # DFS ν¨μ def dfs(airport): while graph[airport]: dfs(graph[airport].pop()) # λ€μ λͺ©μ μ§λ‘ μ΄λ route.append(airport) # κ²½λ‘μ μΆκ° dfs("ICN") # 'ICN'μμ μμ return route[::-1] # μ΅μ’ κ²½λ‘ λ°ν
μ¬μ© μμ
print(solution([["ICN", "JFK"], ["HND", "IAD"], ["JFK", "HND"]])) # μΆλ ₯: ["ICN", "JFK", "HND", "IAD"]
μ΄ μμμμ μ£Όμ΄μ§ ν°μΌλ€μ μ΄μ©νμ¬ κ°λ₯ν μ¬ν κ²½λ‘λ₯Ό ꡬνλ λ¬Έμ μ
λλ€. ν°μΌμ ["ICN", "JFK"]
, ["HND", "IAD"]
, ["JFK", "HND"]
λ‘, κ°κ° μΆλ°μ§μ λͺ©μ μ§λ₯Ό λνλ
λλ€. μ΄ ν°μΌλ€μ μ΄μ©νμ¬ κ°λ₯ν λͺ¨λ κ²½λ‘ μ€ μνλ²³ μμΌλ‘ κ°μ₯ λΉ λ₯Έ κ²½λ‘λ₯Ό μ°Ύμ΅λλ€.
ν¨μ solution
μ μ΄ ν°μΌλ€μ ν΅ν΄ λ€μκ³Ό κ°μ κ²½λ‘λ₯Ό μ°Ύμ΅λλ€: ["ICN", "JFK", "HND", "IAD"]
. μ΄ κ²½λ‘λ λͺ¨λ ν°μΌμ μ¬μ©νλ©°, κ°λ₯ν κ²½λ‘ μ€ μνλ²³ μμλ‘ κ°μ₯ λΉ λ¦
λλ€.
"ICN"
μμ μΆλ°νμ¬ "JFK"
λ‘ κ°κ³ , κ·Έ λ€μ "HND"
λ‘ κ°μ λ§μ§λ§μΌλ‘ "IAD"
μ λμ°©νλ κ²½λ‘κ° μμ±λ©λλ€. μ΄ κ²½λ‘λ μ£Όμ΄μ§ 쑰건μ λ§μ‘±νλ―λ‘, ν¨μλ μ΄ κ²½λ‘λ₯Ό λ°νν©λλ€.
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help