BFS | ์ž๋ฐ”
ยท
๐Ÿ’ป CS/Algorithm
(์ด์ฝ”ํ…Œ 2021 ๊ฐ•์˜ ๋ชฐ์•„๋ณด๊ธฐ) 3. DFS & BFS)๋ฅผ ๋ณด๋ฉด์„œ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.BFS๋ž€BFS๋Š” ์ด์ „์— ํฌ์ŠคํŒ… ํ–ˆ๋˜ DFS์™€ ํ•จ๊ป˜๋Œ€ํ‘œ์ ์ธ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. BFS๋ผ๋Š” ๋ง์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๋„ˆ๋น„(Breadth)๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.๋„ˆ๋น„๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค๋Š” ๋ง์€ ๊ทธ๋ž˜ํ”„์—์„œ ๊ฐ€๊นŒ์šด ๋…ธ๋“œ๋ถ€ํ„ฐ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.๋ฒˆํ˜ธ๊ฐ€ ๋‚ฎ์€ ์ธ์ ‘ ๋…ธ๋“œ๋ถ€ํ„ฐ DFS๋กœ ์œ„ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด 1 -> 2 -> 3 -> 8 -> 7 -> 4 -> 5 -> 6 ์ˆœ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.BFS ๊ตฌํ˜„BFS๋Š” Queue ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.import java.util.*;class Main { public static boolean[] visited = new boole..
DFS | ์ž๋ฐ”
ยท
๐Ÿ’ป CS/Algorithm
(์ด์ฝ”ํ…Œ 2021 ๊ฐ•์˜ ๋ชฐ์•„๋ณด๊ธฐ) 3. DFS & BFS)๋ฅผ ๋ณด๋ฉด์„œ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.DFS๋ž€DFS๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํƒ์ƒ‰์ด๋ž€ ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ค‘ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. DFS๋ผ๋Š” ๋ง์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๊นŠ์ด(Depth)๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.๊นŠ์ด๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•œ๋‹ค๋Š” ๋ง์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.๋ฒˆํ˜ธ๊ฐ€ ๋‚ฎ์€ ์ธ์ ‘ ๋…ธ๋“œ๋ถ€ํ„ฐ DFS๋กœ ์œ„ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด 1 -> 2 -> 7 -> 6 -> 8 -> 3 -> 4 -> 5 ์ˆœ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.DFS ๊ตฌํ˜„DFS๋Š” ์Šคํƒ ํ˜น์€ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ณดํ†ต ํŽธ๋ฆฌ์„ฑ ๋•Œ๋ฌธ์— ์Šคํƒ๋ณด๋‹ค ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.import java.util.*;public class Main { pu..