DFS 2

[Algorithm] DFS/BFS

โ“DFS์™€ BFS - ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜  โ“DFS - Depth First Search (๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)- ์ž„์˜์˜ ์ •์ ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ด์›ƒํ•˜๋Š” ํ•˜๋‚˜์˜ ์ •์ ์„ ๋ฐฉ๋ฌธํ•˜๊ณ , ๋ฐฉ๊ธˆ ๋ฐฉ๋ฌธํ•œ ์ •์ ์˜ ์ด์›ƒ ์ •์ ์„ ๋ฐฉ๋ฌธ def dfs(x): visited[x]=True for i in graph[x]: if not visited[i]: dfs(i)  โ“BFS - Breadth First Search (๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)- ์ž„์˜์˜ ์ •์ ์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ด์›ƒํ•˜๋Š” ๋ชจ๋“  ์ •์ ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๊ณ , ๋ฐฉ๋ฌธํ•œ ์ •์ ๋“ค์˜ ์ด์›ƒ ์ •์ ๋“ค์„ ๋ฐฉ๋ฌธ def bfs(x): queue=[] visited[x]=True queue.append(x) while len(queue)!=0: ..

[programmers] ํƒ€๊ฒŸ ๋„˜๋ฒ„

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊นŠ์ด/๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(DFS/BFS) ๋ฌธ์ œ ์„ค๋ช… n๊ฐœ์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ˆ˜๋ฅผ ์ ์ ˆํžˆ ๋”ํ•˜๊ฑฐ๋‚˜ ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [1, 1, 1, 1, 1]๋กœ ์ˆซ์ž 3์„ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ๋‹ค์„ฏ ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers, ํƒ€๊ฒŸ ๋„˜๋ฒ„ target์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์ˆซ์ž๋ฅผ ์ ์ ˆํžˆ ๋”ํ•˜๊ณ  ๋นผ์„œ ํƒ€๊ฒŸ ๋„˜๋ฒ„๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์‚ฌํ•ญ - ์ฃผ์–ด์ง€๋Š” ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋Š” 2๊ฐœ ์ด์ƒ 20๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค. - ๊ฐ ์ˆซ์ž๋Š” 1 ์ด์ƒ 50 ์ดํ•˜์ธ..