[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋จ์ด ๋ณํ
๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/43163
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ๋จ์ด begin, target๊ณผ ๋จ์ด์ ์งํฉ words๊ฐ ์์ต๋๋ค. ์๋์ ๊ฐ์ ๊ท์น์ ์ด์ฉํ์ฌ begin์์ target์ผ๋ก ๋ณํํ๋ ๊ฐ์ฅ ์งง์ ๋ณํ ๊ณผ์ ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.
1. ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ฒณ๋ง ๋ฐ๊ฟ ์ ์์ต๋๋ค. 2. words์ ์๋ ๋จ์ด๋ก๋ง ๋ณํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด begin์ด "hit", target๊ฐ "cog", words๊ฐ ["hot","dot","dog","lot","log","cog"]๋ผ๋ฉด "hit" -> "hot" -> "dot" -> "dog" -> "cog"์ ๊ฐ์ด 4๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ๋ณํํ ์ ์์ต๋๋ค.
๋ ๊ฐ์ ๋จ์ด begin, target๊ณผ ๋จ์ด์ ์งํฉ words๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ต์ ๋ช ๋จ๊ณ์ ๊ณผ์ ์ ๊ฑฐ์ณ begin์ target์ผ๋ก ๋ณํํ ์ ์๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๊ฐ ๋จ์ด์ ๊ธธ์ด๋ 3 ์ด์ 10 ์ดํ์ด๋ฉฐ ๋ชจ๋ ๋จ์ด์ ๊ธธ์ด๋ ๊ฐ์ต๋๋ค.
- words์๋ 3๊ฐ ์ด์ 50๊ฐ ์ดํ์ ๋จ์ด๊ฐ ์์ผ๋ฉฐ ์ค๋ณต๋๋ ๋จ์ด๋ ์์ต๋๋ค.
- begin๊ณผ target์ ๊ฐ์ง ์์ต๋๋ค.
- ๋ณํํ ์ ์๋ ๊ฒฝ์ฐ์๋ 0๋ฅผ return ํฉ๋๋ค.
ํ์ด
์ฒ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ "์ ์ด๋ ต๋ค๊ณ "๋ผ๊ณ ์๊ฐํ๋๋ฐ, ํ๋ฒ์ ํ๋์ ์ํ๋ฒณ๋ง ๋ฐ๊ฟ ์ ์๊ณ , words์ ์๋ ๋จ์ด๋ก๋ง ๋ณํํ ์ ์๋ค๋ ์กฐ๊ฑด๋๋ฌธ์ ๊ฐ๋จํ ๋ฌธ์ ๋ก ๋ฐ๋์์ต๋๋ค. ์ต์ ๋จ๊ณ๋ฅผ ์์๋ด์ผํ๊ธฐ ๋๋ฌธ์ DFS๋ก ํ์ง ์๊ณ BFS๋ก ํ์์ต๋๋ค.
depth๋ฅผ ์ ์ฅํ๋ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ๋ค์ด ์์ง๋ง, ์ ๋ depth๊ฐ ์์ํ ๋ ํ์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ฅํด๋๊ณ ํด๋น ํฌ๊ธฐ๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด depth๋ฅผ ์ฌ๋ ค์ฃผ๋ ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. for ๋ฌธ์ด ํ๋ ๋ ์๊ฒจ์ ์ฝ๋๋ ์ข ๋ชป์๊ฒผ์ง๋ง depth์ ๋ํ ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ์ง ์์๋ ๋ผ์ ํธํ๋๋ผ๊ตฌ์.
๋ฌธ์ ํด๊ฒฐ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ words ๋ฐฐ์ด์์ ๋จ์ด๋ฅผ ํ๋์ฉ ๊บผ๋ด์ ํ์ฌ ๊ธฐ์ค์ด ๋๋ ๋จ์ด์์ ํ๊ธ์๋ง ๋ฐ๊ฟ์ ๋ง๋ค ์ ์๋ ๋จ์ด๋ผ๋ฉด ํ์ ์ฝ์ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ต๋๋ค. ๋งค ๋ฐ๋ณต๋ง๋ค ํ์์ ๋จ์ด๋ฅผ ๊บผ๋ด์ ์ฌ์ฉํ๊ณ , ์๋ก ๊บผ๋ธ ๋จ์ด๊ฐ target์ผ๋ก ์ง์ ํ ๋จ์ด์ ๊ฐ์ ๋จ์ด์ด๋ฉด ์ข ๋ฃํ๊ณ depth๋ฅผ ๋ฐํํ๋๋ก ํ์ต๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ์ฐ์ฐ์๊ฐ์ ์ต๋ํ ์ค์ด๊ธฐ ์ํด์ ์ด๋ฏธ ๊ฒ์ฌํ๋ ๋จ์ด๋ฅผ Set์ ์ ์ฅํด๋์ด์ ๊ฒ์ฌํ์ง ์์ ์๋ก์ด ๋จ์ด๋ง ๊ฒ์ฌํ๋๋ก ํ๊ณ , BFS์์๋ ์ฃผ๋ก ํ๋ฅผ ์ฌ์ฉํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ depth๋ง ๊ตฌํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ๋ง์ง๋ง์ ๊ณ์ append๋ฅผ ํ๊ณ ์๋ก์ด ๋จ์ด๋ฅผ ๊บผ๋ผ ๋๋ ๋ค์์๋ถํฐ ๊บผ๋ด์ ํ(์ฒ๋ผ ์ฌ์ฉํ๋ ๋ฐฐ์ด)์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ O(1)์ด ๋ณด์ฅ๋๋๋ก ํ์ต๋๋ค.
์ฝ๋
'๐๐ปโโ๏ธ ํผ-์์ค > ๐ฃ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์ฌํ๊ฒฝ๋ก (0) | 2021.10.03 |
---|---|
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋ฒ ์คํธ์จ๋ฒ (0) | 2021.10.03 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋์คํฌ ์ปจํธ๋กค๋ฌ (0) | 2021.09.23 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ์์ (0) | 2021.09.21 |
[์ค์ํํธ ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค: ๋คํธ์ํฌ (0) | 2021.09.21 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote