[Python] ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์นœ๊ตฌ์˜ ์นœ๊ตฌ์ฐพ๊ธฐ

2020. 9. 7. 00:41ยทAlgorithm/Python

๋ชจ๋“  ์นœ๊ตฌ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

def print_all_friends(g, start):
    qu = [] #์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์‚ฌ๋žŒ๋“ค ์ €์žฅ
    done = set() #์ด๋ฏธ ํ์— ์ถ”๊ฐ€ํ•œ ์‚ฌ๋žŒ๋“ค์„ ์ง‘ํ•ฉ์— ๊ธฐ๋ก(์ค‘๋ณต๋ฐฉ์ง€)

    qu.append(start)
    done.add(start)

    while qu: #ํ์— ์ฒ˜๋ฆฌํ•  ์‚ฌ๋žŒ์ด ๋‚จ์•„์žˆ๋Š” ๋™์•ˆ์— 
        p = qu.pop(0)
        print(p)
        for x in g[p]: #๊ทธ์˜ ์นœ๊ตฌ๋“ค ์ค‘์—
            if x not in done: #์•„์ง ํ์— ์ถ”๊ฐ€๋œ์  ์—†๋Š” ์‚ฌ๋žŒ์„
                qu.append(x)
                done.add(x)

fr_info = {
    'Summer': ['John', 'Justin', 'Mike'],
    'John': ['Summer', 'Justin'],
    'Justin': ['John', 'Summer', 'Mike', 'May'],
    'Mike': ['Summer', 'Justin'],
    'May': ['Justin', 'Kim'],
    'Kim': ['May'],
    'Tom': ['Jerry'],
    'Jerry': ['Tom']
}

print_all_friends(fr_info, 'Summer')
print()
print_all_friends(fr_info, 'Jerry')

 

๋ชจ๋“  ์นœ๊ตฌ๋ฅผ ์ฐพ์•„์„œ ์นœ๋ฐ€๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

def print_all_friends(g, start):
    qu = []
    done = set()#์ค‘๋ณต๋ฐฉ์ง€

    qu.append((start, 0))#(์‚ฌ๋žŒ์ด๋ฆ„, ์นœ๋ฐ€๋„) ํŠœํ”Œ๋กœ ๋ฌถ์–ด ์ฒ˜๋ฆฌ

    done.add(start)#์ง‘ํ•ฉ์— ์ถ”๊ฐ€

    while qu:
        (p, d) = qu.pop(0)#ํ์—์„œ (์‚ฌ๋žŒ์ด๋ฆ„, ์นœ๋ฐ€๋„)๋ฅผ ๊ฐ๊ฐ ๊บผ๋ƒ„
        print(p, d)
        for x in g[p]:#์นœ๊ตฌ๋“ค ์ค‘์—
            if x not in done:#์•„์ง ํ์— ์ถ”๊ฐ€๋œ ์ ์ด ์—†๋Š” ์‚ฌ๋žŒ์„
                qu.append((x, d + 1))#์นœ๋ฐ€๋„ 1 ์ฆ๊ฐ€์‹œ์ผœ ํ์— ์ถ”๊ฐ€
                done.add(x)#์ง‘ํ•ฉ์—๋„ ์ถ”๊ฐ€

fr_info = {
    'Summer': ['John', 'Justin', 'Mike'],
    'John': ['Summer', 'Justin'],
    'Justin': ['John', 'Summer', 'Mike', 'May'],
    'Mike': ['Summer', 'Justin'],
    'May': ['Justin', 'Kim'],
    'Kim': ['May'],
    'Tom': ['Jerry'],
    'Jerry': ['Tom']
}

print_all_friends(fr_info, 'Summer')
print()
print_all_friends(fr_info, 'Jerry')

 

'Algorithm > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1613 - ์—ญ์‚ฌ  (1) 2023.02.05
[Python] ๋ฐฑ์ค€ 6118 - ์ˆจ๋ฐ”๊ผญ์งˆ  (0) 2023.02.03
[Python] ํ์™€ ์Šคํƒ(queue, stack)  (0) 2020.08.31
[Python] ์ด๋ถ„ ํƒ์ƒ‰  (0) 2020.08.26
[Python] ํ€ต ์ •๋ ฌ  (0) 2020.08.25
'Algorithm/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Python] ๋ฐฑ์ค€ 1613 - ์—ญ์‚ฌ
  • [Python] ๋ฐฑ์ค€ 6118 - ์ˆจ๋ฐ”๊ผญ์งˆ
  • [Python] ํ์™€ ์Šคํƒ(queue, stack)
  • [Python] ์ด๋ถ„ ํƒ์ƒ‰
๐ŸฅญMango
๐ŸฅญMango
  • ๐ŸฅญMango
    AppleMango๐Ÿฅญ
    ๐ŸฅญMango
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ
        • OS
      • ...
      • ๊ฐœ๋ฐœ ํƒ€์ž„์บก์А
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Apple Login
    ํŒŒ์ด์ฌ 14503
    ์ฝ”ํ‹€๋ฆฐ
    IOS
    ํŒŒ์ด์ฌ ํ† ๋งˆํ† 
    14503 ํŒŒ์ด์ฌ
    Swift Hello World!
    1613 ํŒŒ์ด์ฌ
    ๋ฐฑ์ค€ ํ† ๋งˆํ† 
    ํ† ๋งˆํ† 
    MapMarker
    1์ฐจ์› ๋ฟŒ์š”๋ฟŒ์š”
    Code Base
    ํŒŒ์ด์ฌ
    ์Šคํƒ
    ํŒŒ์ด์ฌ 6118
    1613 ์—ญ์‚ฌ
    14503 ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ
    ์—ญ์‚ฌ ํŒŒ์ด์ฌ
    swiftUI tabview
    Custom Map Marker
    ํŒŒ์ด์ฌ 1459
    6118
    typing animation
    SwiftUI
    ๋ฐฑ์ค€ ์†Œ์ˆ˜
    swiftUI Gradients
    ์ฝ”ํ‹€๋ฆฐ ์ƒ์†
    SwiftUI Apple Login
    ํŒŒ์ด์ฌ ์ •๋ ฌ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.2
๐ŸฅญMango
[Python] ๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์นœ๊ตฌ์˜ ์นœ๊ตฌ์ฐพ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”