5์ผ์ฐจ BFS ์‹ฌํ™” ๐ŸŒฑ

์ฝ”๋ฆฐ์ด์„œํ˜„์ดยท2025๋…„ 9์›” 3์ผ
0
post-thumbnail

ํ•™์Šต ๋ชฉํ‘œ

โœ… ๋‹ค์ค‘ ์‹œ์ž‘์  BFS
โœ… ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์‘์šฉ

BFS ์‹ฌํ™”

๋‹ค์ค‘ ์‹œ์ž‘์  BFS

  • ๊ฐœ๋… : ์ผ๋ฐ˜ BFS๋Š” ๋ณดํ†ต ์‹œ์ž‘์ ์ด ํ•˜๋‚˜์ด์ง€๋งŒ
    ๋‹ค์ค‘ ์‹œ์ž‘์  BFS๋Š” ์‹œ์ž‘์ ์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ, ๋ชจ๋‘ ๋™์‹œ์— ์ถœ๋ฐœ์‹œํ‚ค๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ๊ตฌํ˜„ : ๋‹จ์ˆœํžˆ ์—ฌ๋Ÿฌ๊ฐœ์ธ ์‹œ์ž‘์  ๋ชจ๋‘๋ฅผ ํ์— ์ง‘์–ด๋„ฃ๊ณ  ์‹œ์ž‘ํ•˜๋ฉด ๋œ๋‹ค.
  • ์ด์ : ๋™์‹œ์— ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์ž‘์ ์ด ์—ฌ๋Ÿฌ๊ฐœ ์ผ๋•Œ ๋ชจ๋“  ์‹œ์ž‘์ ์œผ๋กœ๋ถ€ํ„ฐ์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๊ธฐ ์‰ฝ๋‹ค.

์ตœ๋‹จ๊ฑฐ๋ฆฌ ์‘์šฉ

  • ๊ฐœ๋… : BFS๋Š” ๊ฐ„์„  ๊ฐ€์ค‘์น˜๊ฐ€ ๋™์ผํ•  ๋•Œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๋ณด์žฅํ•œ๋‹ค. ๋˜ํ•œ ๋‹จ์ˆœ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฟ ์•„๋‹ˆ๋ผ, ํŠน์ • ๋ ˆ๋ฒจ๊นŒ์ง€๋งŒ ํƒ์ƒ‰์ด๋‚˜ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์ƒํƒœ(์กฐ๊ฑด)๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ ค๊ฐ™์€ ํ™•์žฅ์ด ๊ฐ€๋Šฅ
  • ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ : dist[next] = dist[curr] + 1 ๋กœ ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์„ ๊ด€๋ฆฌ

๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ๋ฐฉ๋ฒ•

์ €๋ฒˆ ๋ฏธ๋กœ ์ฐพ๊ธฐ ๋ฌธ์ œ์—์„œ๋Š” ๊ฑฐ๋ฆฌ๋ฅผ ๋ฐฉ๋ฌธ ํ์— ๊ฐ™์ด ์ €์žฅํ•˜๋ฉด์„œ ํ™œ์šฉํ–ˆ๋‹ค.

queue.append((i, j, d+1))

๋งŒ์•ฝ ๊ฐ ์ง€์  ๋ณ„ ๊ฑฐ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด์•ผํ•œ๋‹ค๋ฉด ๋ณ„๋„์˜ ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

dist[next] = dist[curr] + 1

๋ฌธ์ œ ํ’€๊ธฐ

7576 ํ† ๋งˆํ† 

  • ํ’€์ด ๋งํฌ : ๐Ÿ”— ๊ฐœ์ธ ๋…ธ์…˜ ๋งํฌ
  • ํ•œ์ค„ ์ •๋ฆฌ : ํ† ๋งˆํ†  ๊ฐœ์ˆ˜๋ฅผ ์„ธ์„œ, ํ† ๋งˆํ† ๋ฅผ ์ฐพ์„๋•Œ๋งˆ๋‹ค -1 ์—ฐ์‚ฐํ•ด์ฃผ๊ธฐ

1012 ์œ ๊ธฐ๋† ๋ฐฐ์ถ”

  • ํ’€์ด ๋งํฌ : ๐Ÿ”— ๊ฐœ์ธ ๋…ธ์…˜ ๋งํฌ
  • ํ•œ์ค„ ์ •๋ฆฌ : ๋ฐฐ์ถ” ๋ฐญ ๋ฐฐ์—ด์„ ๋ณ„๋„๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋ฐ”๋กœ dict์œผ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ๋ฐฐ์ถ”๋ฐญ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋ฉด n * m ๋ฐฐ์—ด์„ ๋ฌด์กฐ๊ฑด ์ˆœํšŒํ•ด์•ผํ•˜๋Š”๋ฐ ์ด ์ฝ”๋“œ์—์„œ๋Š” ๊ทธ๋Ÿฐ ๋ฐ˜๋ณต๋ฌธ์ด ๋น ์ ธ์„œ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋‹จ์ถ•๋œ ๊ฒƒ ๊ฐ™๋‹ค !! ^_^ ์ด๋ฒˆ ๊ธฐํšŒ์— dict๋„ ํ•œ๋ฒˆ ๋” ์ •๋ฆฌํ•ด๋ดฃ์–ด์š”

11724 ์—ฐ๊ฒฐ์š”์†Œ์˜ ๊ฐœ์ˆ˜

์ถ”๊ฐ€ ์ •๋ฆฌ) ํŒŒ์ด์ฌ dict

d = {"a": 1, "b": 2}

# ์•ˆ์ „ํ•œ ์กฐํšŒ
d.get("a", 0)       # key ์—†์œผ๋ฉด 0 ๋ฐ˜ํ™˜

# key, value ์ˆœํšŒ
for k, v in d.items():
    ...

# ๋‹ค๋ฅธ dict ํ•ฉ์น˜๊ธฐ / ๊ฐ’ ๊ฐฑ์‹ 
d.update({"b": 3, "c": 4})

# key ์‚ญ์ œ & ๊ฐ’ ๋ฐ˜ํ™˜
d.pop("a", 0)       # ์—†์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ ๋ฐ˜ํ™˜

# ์ „์ฒด ์‚ญ์ œ
d.clear()

# key / value๋งŒ ๋ณด๊ธฐ
d.keys()
d.values()
profile
ํฌ๊ธฐ๋งŒ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์–ธ์  ๊ฐ„ ๋„๋‹ฌํ•œ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€