Guidelines

κ·Έλž˜ν”„ κ΅¬ν˜„ 방법

1. κ·Έλž˜ν”„ 클래슀 μ •μ˜

  • κ·Έλž˜ν”„λŠ” λ…Έλ“œμ™€ 간선을 μ‚¬μš©ν•˜μ—¬ λ„€νŠΈμ›Œν¬ ꡬ쑰λ₯Ό λͺ¨λΈλ§ν•˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

  • Graph ν΄λž˜μŠ€λŠ” λ…Έλ“œμ™€ κ·Έ 인접 λ…Έλ“œλ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ λ”•μ…”λ„ˆλ¦¬λ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.


κ·Έλž˜ν”„ 클래슀 μ •μ˜ μ˜ˆμ‹œ
class Graph: def __init__(self): self.graph = {} # λ…Έλ“œμ™€ κ·Έ 인접 λ…Έλ“œλ₯Ό μ €μž₯ν•  λ”•μ…”λ„ˆλ¦¬

2. κ°„μ„  μΆ”κ°€ λ©”μ†Œλ“œ

  • add_edge λ©”μ†Œλ“œλŠ” 두 λ…Έλ“œ 사이에 μ–‘λ°©ν–₯ 간선을 μΆ”κ°€ν•©λ‹ˆλ‹€.

  • 각 λ…Έλ“œκ°€ κ·Έλž˜ν”„μ— μ—†λŠ” 경우, λ…Έλ“œλ₯Ό μΆ”κ°€ν•˜κ³  빈 리슀트λ₯Ό ν• λ‹Ήν•©λ‹ˆλ‹€.


κ°„μ„  μΆ”κ°€ λ©”μ†Œλ“œ μ˜ˆμ‹œ
def add_edge(self, node1, node2): if node1 not in self.graph: self.graph[node1] = [] if node2 not in self.graph: self.graph[node2] = [] self.graph[node1].append(node2) self.graph[node2].append(node1)

3. κ·Έλž˜ν”„ 좜λ ₯ λ©”μ†Œλ“œ

  • display λ©”μ†Œλ“œλŠ” κ·Έλž˜ν”„μ˜ λ‚΄μš©μ„ 좜λ ₯ν•©λ‹ˆλ‹€.

  • 각 λ…Έλ“œμ™€ 그에 μΈμ ‘ν•œ λ…Έλ“œλ“€μ„ 좜λ ₯ν•˜μ—¬ κ·Έλž˜ν”„μ˜ ꡬ쑰λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.


κ·Έλž˜ν”„ 좜λ ₯ λ©”μ†Œλ“œ μ˜ˆμ‹œ
def display(self): for node in self.graph: print(f"{node} -> {self.graph[node]}")

4. κ·Έλž˜ν”„ 객체 생성 및 μ‚¬μš©

  • Graph 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κ³ , 간선을 μΆ”κ°€ν•˜μ—¬ κ·Έλž˜ν”„λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€.

  • display λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ κ·Έλž˜ν”„μ˜ ꡬ쑰λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.


κ·Έλž˜ν”„ 객체 생성 및 μ‚¬μš© μ˜ˆμ‹œ
# κ·Έλž˜ν”„ 객체 생성 g = Graph() # κ°„μ„  μΆ”κ°€ g.add_edge('A', 'B') g.add_edge('A', 'C') g.add_edge('B', 'C') g.add_edge('B', 'D') # κ·Έλž˜ν”„ 좜λ ₯ g.display()

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result