๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm๐Ÿ’ป35

[Algorithm] DFS, BFS DFS (Depth-First-Search) ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๊ทธ๋ž˜ํ”„์—์„œ ๊นŠ์€ ๋ถ€๋ถ„์„ ์šฐ์„ ์ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•œ๋‹ค. ์Šคํƒ ์ž๋ฃŒ ๊ตฌ์กฐ(ํ˜น์€ ์žฌ๊ท€ ํ•จ์ˆ˜)๋ฅผ ์ด์šฉํ•œ๋‹ค. 1. ํƒ์ƒ‰ ์‹œ์ž‘ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ๋ฅผ ํ•œ๋‹ค. 2. ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ๋…ธ๋“œ์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์žˆ๋‹ค๋ฉด ๊ทธ ๋…ธ๋“œ๋ฅผ ์Šคํƒ์— ๋„ฃ๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ธ์ ‘ ๋…ธ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด ์ตœ์ƒ๋‹จ ๋…ธ๋“œ๋ฅผ ๊บผ๋‚ธ๋‹ค. 3. ๋” ์ด์ƒ 2๋ฒˆ์˜ ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. DFS ๋™์ž‘ ์˜ˆ์‹œ [Step 0] ๊ทธ๋ž˜ํ”„ ์ค€๋น„ (๋ฐฉ๋ฌธ ๊ธฐ์ค€ : ๋ฒˆํ˜ธ๊ฐ€ ๋‚ฎ์€ ์ธ์ ‘ ๋…ธ๋“œ๋ถ€ํ„ฐ) ์‹œ์ž‘ ๋…ธ๋“œ : 1 [Step 1] ์‹œ์ž‘ ๋…ธ๋“œ์ธ '1'์„ ์Šคํƒ์— ์‚ฝ์ž…ํ•˜๊ณ  ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•œ๋‹ค. [Step 2] ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ๋…ธ๋“œ์ธ '1'์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š.. 2022. 11. 15.
[๋ฐฑ์ค€,Python] 1260๋ฒˆ - DFS์™€ BFS https://www.acmicpc.net/problem/1260 1260๋ฒˆ: DFS์™€ BFS ์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ www.acmicpc.net ํ’€์ด ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(dfs)์™€ ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(bfs)์œผ๋กœ ์‹คํ–‰ ์‹œํ‚จ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์ ์„ ํ™•์‹คํžˆ ์•„๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์ฝ”๋“œ import sys input = sys.stdin.readline n,m,v = map(int,input().split()) visited = [False]*(n+1) graph = [[] for _ in.. 2022. 11. 15.
[๋ฐฑ์ค€,Python] 9465๋ฒˆ - ์Šคํ‹ฐ์ปค https://www.acmicpc.net/problem/9465 9465๋ฒˆ: ์Šคํ‹ฐ์ปค ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์—๋Š” n (1 ≤ n ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ๋‘ ์ค„์—๋Š” n๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์ •์ˆ˜๋Š” ๊ทธ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ์Šคํ‹ฐ์ปค์˜ www.acmicpc.net ํ’€์ด ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋„์ €ํžˆ ์ ํ™”์‹์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„ ๊ตฌ๊ธ€๋ง์„ ํ–ˆ๋‹ค. ์œ„์˜ ํ‘œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด์ž. ์ขŒ์ธก์—์„œ๋ถ€ํ„ฐ ํ•ด๋‹น ์Šคํ‹ฐ์ปค์˜ ์œ„์น˜์— ์ตœ๋Œ€๊ฐ’์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์šฐ์„  ํ•ด๋‹น ์œ„์น˜์—์„œ ์ขŒ,์šฐ,์œ„,์•„๋ž˜ ์ˆซ์ž๋Š” ์„ ํƒํ•  ์ˆ˜ ์—†๋‹ค. 1๋ฒˆ ์ธ๋ฑ์Šค์—์„œ๋Š” ์™ผ์ชฝ ๋Œ€๊ฐ์„ ์˜ 0๋ฒˆ ์ธ๋ฑ์Šค์˜ ์ˆซ์ž๋ฅผ ๋”ํ•  ์ˆ˜ ์žˆ๋‹ค. 2๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ๋Š” ์ด ์ „๊นŒ์ง€ ์ตœ๋Œ“๊ฐ’์„ ๋”ํ•œ ์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์™ผ์ชฝ ๋Œ€๊ฐ์„ ์˜ ์ˆซ์ž์™€ .. 2022. 11. 13.
[๋ฐฑ์ค€,Python] 9095๋ฒˆ - 1, 2, 3 ๋”ํ•˜๊ธฐ https://www.acmicpc.net/problem/9095 9095๋ฒˆ: 1, 2, 3 ๋”ํ•˜๊ธฐ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค, n์„ 1, 2, 3์˜ ํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด d[4]๋ฅผ ๊ตฌํ•œ๋‹ค๊ณ  ํ•˜์ž. 3์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ +1์„ ํ•œ ๊ฒƒ, 2๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ +2๋ฅผ ํ•œ ๊ฒƒ, 1์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜์—์„œ +3์„ ํ•œ ๊ฒƒ์„ ํ•ฉ์น˜๋ฉด๋œ๋‹ค. ์ฆ‰, d[4] = d[3] + d[2] + d[1] ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. d[n] = d[n-3] + d[n-2] + d[n-1] ์ด๋ผ๋Š” ์‹์ด ๋‚˜์˜จ๋‹ค. ํ•ด๋‹น ๊ทธ๋ฆผ์€ ์ •๋ฆฌ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ํ•˜์…”์„œ ์ฐธ๊ณ ๋ฅผ ํ–ˆ๋‹ค. [Python] ๋ฐฑ์ค€ #9095 - 1, 2, 3 ๋”ํ•˜๊ธฐ (tistory.com) ์ฝ”๋“œ d=[0]*11.. 2022. 11. 12.
[Algorithm] ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜„์žฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ’€๋‹ค๊ฐ€ ํ•œ๋ฒˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์ด์—, ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Dynamic Programming)๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋Š” ๋™์  ๊ณ„ํš๋ฒ•์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. Dynamic Programming, ๋™์  ๊ณ„ํš๋ฒ• ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์•ฝ๊ฐ„ ๋” ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์—ฐ์‚ฐ ์†๋„์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŠน์ •ํ•œ ๋ฌธ์ œ๋ฅผ ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ ‘๊ทผํ–ˆ์„ ๋•Œ ์‹œ๊ฐ„์ด ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ๋“ค์˜ ์ค‘๋ณต ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ด๋ณผ ๊ฒƒ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋Š” ํƒ‘๋‹ค์šด ๋ฐฉ์‹๋ณด๋‹ค๋Š” ๋ณดํ…€์—… ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•จ ํƒ‘๋‹ค์šด(Top-Down) ๋ฐฉ์‹ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ .. 2022. 11. 11.