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

์ „์ฒด ๊ธ€214

[๋ฐฑ์ค€] 2437 ์ €์šธ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/2437 2437๋ฒˆ: ์ €์šธ ํ•˜๋‚˜์˜ ์–‘ํŒ” ์ €์šธ์„ ์ด์šฉํ•˜์—ฌ ๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ๋ฅผ ์ธก์ •ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์ด ์ €์šธ์˜ ์–‘ ํŒ”์˜ ๋์—๋Š” ๋ฌผ๊ฑด์ด๋‚˜ ์ถ”๋ฅผ ์˜ฌ๋ ค๋†“๋Š” ์ ‘์‹œ๊ฐ€ ๋‹ฌ๋ ค ์žˆ๊ณ , ์–‘ํŒ”์˜ ๊ธธ์ด๋Š” ๊ฐ™๋‹ค. ๋˜ํ•œ, ์ €์šธ์˜ ํ•œ์ชฝ์—๋Š” ์ €์šธ์ถ”๋“ค๋งŒ ๋†“ www.acmicpc.net ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๋กœ ์ •๋‹ต์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋งค์šฐ ๋‹จ์ˆœํ•œ๋ฐ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๋งค์šฐ ํž˜๋“ค๋‹ค. ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ํ˜„์žฌ๊นŒ์ง€ ์ธก์ • ๊ฐ€๋Šฅํ•œ ๋ฌด๊ฒŒ์˜ ์ตœ๋Œ“๊ฐ’์„ ans๋ผ๊ณ  ํ•˜๋ฉด (1 - ans)์˜ ๊ฐ’๋“ค์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๋ฌด๊ฒŒ์ถ”๋“ค ์ค‘์—์„œ ํ•˜๋‚˜์˜ ๋ฌด๊ฒŒ์ถ”(weight)์„ ์„ ํƒํ•œ๋‹ค. weight ans + 1๋ผ๋ฉด ans + 1์˜ ๊ฐ’์€ ์ธก์ • ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ํ•ด๋‹น ๊ฐ’์ด ์ •๋‹ต์ด ๋œ๋‹ค. ๋‹จ 1, 1, 1, 1 ํ˜น.. 2022. 10. 3.
[๋ฐฑ์ค€] 20056 ๋งˆ๋ฒ•์‚ฌ ์ƒ์–ด์™€ ํŒŒ์ด์–ด๋ณผ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/20056 20056๋ฒˆ: ๋งˆ๋ฒ•์‚ฌ ์ƒ์–ด์™€ ํŒŒ์ด์–ด๋ณผ ์ฒซ์งธ ์ค„์— N, M, K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ํŒŒ์ด์–ด๋ณผ์˜ ์ •๋ณด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ํŒŒ์ด์–ด๋ณผ์˜ ์ •๋ณด๋Š” ๋‹ค์„ฏ ์ •์ˆ˜ ri, ci, mi, si, di๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ํŒŒ์ด์–ด๋ณผ์˜ ์œ„์น˜ www.acmicpc.net ํŠน๋ณ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š” ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค. ์–ด๋–ค ์ž๋ฃŒ๊ตฌ์กฐํ˜•์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ด์„œ ํŒŒ์ด์–ด๋ณผ์˜ ์ •๋ณด์™€ ์œ„์น˜ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ผ ๊ฒƒ์ธ๊ฐ€๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ ์ข€ ๊นŒ๋‹ค๋กญ๋‹ค ๊ตฌํ˜„ํ•ด์•ผํ•  ์š”์†Œ๋Š” ํฌ๊ฒŒ ํŒŒ์ด์–ด๋ณผ์˜ ์ด๋™ / ํŒŒ์ด์–ด๋ณผ์˜ ๋ณ‘ํ•ฉ๊ณผ ๋ถ„์‚ฐ์ด๋‹ค. ๋จผ์ € ํŒŒ์ด์–ด๋ณผ์˜ ์ด๋™์ด๋‹ค. ํŒŒ์ด์–ด์–ด๋ณผ์˜ ์ด๋™์€ ๋ฆฌ์ŠคํŠธ์— ๋‹ด์€ ํŒŒ์ด์–ด๋ณผ์˜ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์„œ ๋นˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ N x N ๋ฐฐ์—ด(๋ฆฌ.. 2022. 10. 3.
[๋ฐฑ์ค€] 14621 ๋‚˜๋งŒ ์•ˆ๋˜๋Š” ์—ฐ์•  (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/14621 14621๋ฒˆ: ๋‚˜๋งŒ ์•ˆ๋˜๋Š” ์—ฐ์•  ์ž…๋ ฅ์˜ ์ฒซ์งธ ์ค„์— ํ•™๊ต์˜ ์ˆ˜ N์™€ ํ•™๊ต๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. (2 ≤ N ≤ 1,000) (1 ≤ M ≤ 10,000) ๋‘˜์งธ ์ค„์— ๊ฐ ํ•™๊ต๊ฐ€ ๋‚จ์ดˆ ๋Œ€ํ•™๊ต๋ผ๋ฉด M, ์—ฌ์ดˆ ๋Œ€ํ•™๊ต๋ผ๋ฉด W์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ www.acmicpc.net 1. ๊ธฐ๋ณธ์ ์ธ MST ๋ฌธ์ œ์ด๋‹ค. 2. ๋Œ€ํ•™๊ต ๋‚จ์ดˆ/์—ฌ์ดˆ ์—ฌ๋ถ€๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด์„œ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋‹ค์Œ ๊ฐ„์„  ์„ ํƒ ์‹œ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋Œ€ํ•™๊ต์ผ ๊ฒฝ์šฐ๋งŒ ์„ ํƒํ•˜๋„๋ก ํ–ˆ๋‹ค. 3. ๊ทธ ์™ธ์—๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” mst๊ฐ€ ์—†์„ ๊ฒฝ์šฐ -1์„ ์ถœ๋ ฅํ•˜๋„๋ก ํ•ด์•ผ๋œ๋‹ค. import sys, os, io, atexit input = lambda: sys.stdin.read.. 2022. 10. 2.
[๋ฐฑ์ค€] 16724 ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/16724 16724๋ฒˆ: ํ”ผ๋ฆฌ ๋ถ€๋Š” ์‚ฌ๋‚˜์ด ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ง€๋„์˜ ํ–‰์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” N(1 ≤ N ≤ 1,000)๊ณผ ์ง€๋„์˜ ์—ด์˜ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” M(1 ≤ M ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ธธ์ด๊ฐ€ M์ธ ๋ฌธ์ž์—ด์ด ์ฃผ www.acmicpc.net 0. DFS / BFS (+ ์œ ๋‹ˆ์˜จํŒŒ์ธ๋“œ) ๋ฌธ์ œ์ด๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์— ๊ด„ํ˜ธ๋ฅผ ์นœ ์ด์œ ๋Š” ์•„๋ž˜ ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋ฅผ ์•ˆ ์“ฐ๊ณ  bfs๋งŒ์œผ๋กœ ํ’€์ด ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (์•„๋ž˜ ์„ค๋ช…) 1. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ํ’€์ด ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์—์„œ dfs๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์ดํด์„ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ์‚ฌ์ดํด์„ ํ•˜๋‚˜์˜ safezone ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผํ•˜๋Š”๋ฐ ์ด ๊ณผ์ •์—์„œ ์œ ๋‹ˆ์˜จ ํŒŒ.. 2022. 10. 2.
[๋ฐฑ์ค€] 2146 ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/2146 2146๋ฒˆ: ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ ์—ฌ๋Ÿฌ ์„ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋‚˜๋ผ๊ฐ€ ์žˆ๋‹ค. ์ด ๋‚˜๋ผ์˜ ๋Œ€ํ†ต๋ น์€ ์„ฌ์„ ์ž‡๋Š” ๋‹ค๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ฒ ๋‹ค๋Š” ๊ณต์•ฝ์œผ๋กœ ์ธ๊ธฐ๋ชฐ์ด๋ฅผ ํ•ด ๋‹น์„ ๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ง‰์ƒ ๋Œ€ํ†ต๋ น์— ์ทจ์ž„ํ•˜์ž, ๋‹ค๋ฆฌ๋ฅผ ๋†“๋Š”๋‹ค๋Š” ๊ฒƒ์ด ์•„๊น๋‹ค www.acmicpc.net 1. ๊ธฐ๋ณธ ์ ‘๊ทผ์€ ๊ฐ๊ฐ์˜ ์„ฌ์— ๋‹ค๋ฅธ ๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•˜๊ณ  ๊ฐ๊ฐ์˜ ์„ฌ์— ๋Œ€ํ•ด์„œ bfs๋ฅผ ํ†ตํ•ด์„œ ๋‹ค๋ฆฌ์˜ ์ตœ์†Œ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 2. ๋‹ค๋งŒ ๋ฉ”๋ชจ๋ฆฌ์ดˆ๊ณผ๊ฐ€ ๋‚˜๊ธฐ ์‰ฌ์›Œ์„œ visited๋ฐฐ์—ด์„ ์ž˜ ํ™œ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋‹ค๋ฆฌ ๊ฑด์„คํ•˜๋Š” bfs ํ•จ์ˆ˜ ์•ˆ์— visited๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ , ์„ฌ์˜ ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ visited๋ฐฐ์—ด์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด์„œ ํ•œ ๋ฒˆ ํƒ์ƒ‰ํ•œ ์„ฌ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋„๋ก ํ–ˆ๋‹ค. 3. ๋‹ค๋ฆฌ๋ฅผ .. 2022. 10. 1.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋‹ค์ต์ŠคํŠธ๋ผ (Dijkstra) ๋‹ค์ต์ŠคํŠธ๋ผ (Dijkstra) ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ โœ” ์Œ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์˜ ํ•œ ์ •์ ์—์„œ ๋ชจ๋“  ์ •์ ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๊ฐ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์›๋ฆฌ * P[a][b]: a์™€ b ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ ์ถœ๋ฐœ์ ์œผ๋กœ๋ถ€ํ„ฐ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด distance[v]์„ ๋งŒ๋“ค๊ณ  ์ถœ๋ฐœ ๋…ธ๋“œ๋Š” 0, ๋‚˜๋จธ์ง€ ๋…ธ๋“œ๋“ค์€ ์ถฉ๋ถ„ํžˆ ํฐ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค. ํ˜„์žฌ ๋…ธ๋“œ Current๋ฅผ ์ถœ๋ฐœ ๋…ธ๋“œ์˜ ๋ฒˆํ˜ธ๋กœ ์„ค์ •ํ•œ๋‹ค. Current๋กœ๋ถ€ํ„ฐ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ž„์˜์˜ ๋…ธ๋“œ Next์— ๋Œ€ํ•ด distance[Current] + P[Current][Next](A๋ฅผ ๊ฑฐ์ณ์„œ B๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ)์™€ distance[Next](ํ˜„์žฌ๊นŒ์ง€ ์•Œ๋ ค์ง„ B์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ)์˜ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ์งง์€ ๊ฐ’(์งง์€ ๊ฒฝ๋กœ)๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค. Current์˜ ๋ชจ๋“  ์ด์›ƒ๋…ธ๋“œ N.. 2022. 10. 1.