glowing713
Frontend-Deep-Dive
glowing713
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
    • Languages (11)
      • JavaScript ๐Ÿ’› (3)
      • Python ๐Ÿ (4)
      • Java โ˜•๏ธ (3)
      • Swift ๐Ÿงก (1)
    • Computer_Science (1)
      • Computer_Network ๐Ÿ•ธ (1)
    • Web_Frontend (4)
      • Vue.js (1)
    • Problem_Solving (76)
    • Server (1)
      • Spring ๐Ÿ€ (1)
    • AI (2)
      • NLP ๐Ÿ—ฃ (1)
      • AI_Math โž— (1)
    • ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊พธ๋ฏธ๊ธฐ โœŒ (1)
    • ์ƒ๊ฐ์ •๋ฆฌ โœ๐Ÿป (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿง‘๐Ÿปโ€๐Ÿ’ปGithub

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ps
  • ์นด์นด์˜ค ๊ธฐ์ถœ
  • Java
  • ์™„์ „ํƒ์ƒ‰
  • Algorithm
  • ๋™์ ๊ณ„ํš๋ฒ•
  • Python
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • c++
  • bfs
  • brute-force
  • boostcampaitech
  • 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ
  • mst
  • BOJ
  • DP
  • Baekjoon
  • ์ด๋ถ„ํƒ์ƒ‰
  • binary search
  • Stack

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
glowing713

Frontend-Deep-Dive

[BOJ] ๋ฐฑ์ค€ 2644 ์ดŒ์ˆ˜๊ณ„์‚ฐ / BFS, DFS
Problem_Solving

[BOJ] ๋ฐฑ์ค€ 2644 ์ดŒ์ˆ˜๊ณ„์‚ฐ / BFS, DFS

2021. 1. 5. 01:09

์ด๋ฏธ์ง€๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ฌธ์ œ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ’ญ ํ’€์ด ๊ณผ์ •

 

 

ํƒ์ƒ‰ ๋ฌธ์ œ๋กœ์„œ BFS์™€ DFS ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œ์ด๋‹ค.

 

์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋กœ ์–‘ ์ชฝ ๋ชจ๋‘์— ์ €์žฅํ•œ๋‹ค.

 

visited ๋ฆฌ์ŠคํŠธ์—๋Š” ์ถœ๋ฐœ์ ์—์„œ ํ•ด๋‹น ๋ฒˆํ˜ธ์˜ ๋…ธ๋“œ๊นŒ์ง€ ์ด๋™ํ•˜๋Š” ๊ฑฐ๋ฆฌ(์ดŒ์ˆ˜)๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

visited์˜ ๋„์ฐฉ์  ์œ„์น˜ ๊ฐ’์ด 0์ด๋ฉด ๊ฐ€์กฑ ๊ด€๊ณ„๊ฐ€ ์ „ํ˜€ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ -1์„ ์ถœ๋ ฅํ•˜๊ณ ,

๊ฐ’์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊ทธ ์ดŒ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

์ž‘์„ฑ์–ธ์–ด: Python

 

 

BFS

 

from sys import stdin
from collections import deque


n = int(stdin.readline().rstrip())
man1, man2 = map(int, stdin.readline().rstrip().split())
m = int(stdin.readline().rstrip())
family_tree = [[] for _ in range(n+1)]    # ๊ฐ€์กฑ ๊ด€๊ณ„
visited = [0]*(n+1)    # ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ
queue = deque()

# ๊ฐ€์กฑ ๊ด€๊ณ„ ์ •๋ณด ์ž…๋ ฅ
for _ in range(m):
    x, y = map(int, stdin.readline().rstrip().split())
    family_tree[x].append(y)
    family_tree[y].append(x)
   

# BFS ์ˆ˜ํ–‰
queue.append(man1)
while queue:
    now = queue.popleft()
    for man in family_tree[now]:
        # ์•„์ง ํƒ์ƒ‰ํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ์ด๋ฉด์„œ, ์‹œ์ž‘๋…ธ๋“œ๊ฐ€ ์•„๋‹ˆ๋ฉด ํ์— ์‚ฝ์ž…
        if man != man1 and visited[man] == 0:
            # ์ดŒ์ˆ˜ 1 ์ฆ๊ฐ€
            visited[man] = visited[now] + 1
            queue.append(man)

# ํƒ์ƒ‰ ํ›„์—๋„ ์—ฌ์ „ํžˆ 0์ด๋ผ๋ฉด ์นœ์ฒ™ ๊ด€๊ณ„๊ฐ€ ์ „ํ˜€ ์—†๋‹ค๋Š” ๊ฒƒ(์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š์Œ)
if visited[man2] == 0:
    print(-1)
else:
    print(visited[man2])

 

 

DFS

 

from sys import stdin


n = int(stdin.readline().rstrip())
man1, man2 = map(int, stdin.readline().rstrip().split())
m = int(stdin.readline().rstrip())
family_tree = [[] for _ in range(n+1)]    # ๊ฐ€์กฑ ๊ด€๊ณ„
visited = [0]*(n+1)    # ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ

# ๊ฐ€์กฑ ๊ด€๊ณ„ ์ •๋ณด ์ž…๋ ฅ
for _ in range(m):
    x, y = map(int, stdin.readline().rstrip().split())
    family_tree[x].append(y)
    family_tree[y].append(x)


# DFS ์ˆ˜ํ–‰
def dfs(before):
    global family_tree, visited, man1
    for man in family_tree[before]:
        if man != man1 and visited[man] == 0:
            visited[man] = visited[before] + 1
            dfs(man)


dfs(man1)
    
# ํƒ์ƒ‰ ํ›„์—๋„ ์—ฌ์ „ํžˆ 0์ด๋ผ๋ฉด ์นœ์ฒ™ ๊ด€๊ณ„๊ฐ€ ์ „ํ˜€ ์—†๋‹ค๋Š” ๊ฒƒ(์—ฐ๊ฒฐ๋˜์–ด์žˆ์ง€ ์•Š์Œ)
if visited[man2] == 0:
    print(-1)
else:
    print(visited[man2])
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[BOJ] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ / BFS  (0) 2021.01.07
[BOJ] ๋ฐฑ์ค€ 7569 ํ† ๋งˆํ†  / BFS  (0) 2021.01.05
[BOJ] ๋ฐฑ์ค€ 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ / BFS, DFS  (0) 2021.01.04
[BOJ] ๋ฐฑ์ค€ 2887 ํ–‰์„ฑ ํ„ฐ๋„ / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ  (0) 2020.11.21
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ / ์ตœ๋‹จ ๊ฒฝ๋กœ, ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2020.11.21
    'Problem_Solving' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [BOJ] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ / BFS
    • [BOJ] ๋ฐฑ์ค€ 7569 ํ† ๋งˆํ†  / BFS
    • [BOJ] ๋ฐฑ์ค€ 2667 ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ / BFS, DFS
    • [BOJ] ๋ฐฑ์ค€ 2887 ํ–‰์„ฑ ํ„ฐ๋„ / ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST), ํฌ๋ฃจ์Šค์นผ
    glowing713
    glowing713

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