Guidelines

μ—¬ν–‰ 경둜 μ°ΎκΈ° ν•΄μ„€

λΉ„ν–‰ ν‹°μΌ“λ“€λ‘œ κ°€λŠ₯ν•œ μ—¬ν–‰ 경둜λ₯Ό μ°ΎλŠ” ν•¨μˆ˜λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

이 과정은 μž¬κ·€ 호좜과 깊이 μš°μ„  탐색(DFS)을 μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„λ©λ‹ˆλ‹€.


ν•¨μˆ˜ κ΅¬ν˜„

  1. κ·Έλž˜ν”„ μ΄ˆκΈ°ν™”:

    • 각 ν‹°μΌ“μ˜ μΆœλ°œμ§€μ™€ λͺ©μ μ§€λ₯Ό μ‚¬μš©ν•˜μ—¬ κ·Έλž˜ν”„λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.

    • 이 κ·Έλž˜ν”„λŠ” 각 κ³΅ν•­μ—μ„œ μΆœλ°œν•˜μ—¬ 도달할 수 μžˆλŠ” λͺ¨λ“  λͺ©μ μ§€λ₯Ό 리슀트둜 μ €μž₯ν•©λ‹ˆλ‹€.

  2. ν‹°μΌ“ μ •λ ¬:

    • 각 κ³΅ν•­μ—μ„œ μΆœλ°œν•˜λŠ” 티켓듀을 μ—­μˆœμœΌλ‘œ μ •λ ¬ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ DFS 탐색 μ‹œ μ•ŒνŒŒλ²³ 순으둜 κ°€μž₯ λΉ λ₯Έ 경둜λ₯Ό μš°μ„ μ μœΌλ‘œ νƒμƒ‰ν•©λ‹ˆλ‹€.
  3. DFS ν•¨μˆ˜ κ΅¬ν˜„:

    • μž¬κ·€ ν•¨μˆ˜ dfsλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. 이 ν•¨μˆ˜λŠ” ν˜„μž¬ κ³΅ν•­μ—μ„œ μΆœλ°œν•˜μ—¬ κ°€λŠ₯ν•œ λͺ¨λ“  경둜λ₯Ό νƒμƒ‰ν•©λ‹ˆλ‹€.

    • 탐색이 λλ‚œ ν›„μ—λŠ” 경둜λ₯Ό route λ¦¬μŠ€νŠΈμ— μΆ”κ°€ν•©λ‹ˆλ‹€.

  4. μ΅œμ’… 경둜 계산:

    • 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