๐Ÿค–Algorithm ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 125๊ฑด

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 1516๋ฒˆ: ๊ฒŒ์ž„ ๊ฐœ๋ฐœ ์ฒซ์งธ ์ค„์— ๊ฑด๋ฌผ์˜ ์ข…๋ฅ˜ ์ˆ˜ N(1 ≤ N ≤ 500)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ N๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ ๊ฑด๋ฌผ์„ ์ง“๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ๊ทธ ๊ฑด๋ฌผ์„ ์ง“๊ธฐ ์œ„ํ•ด ๋จผ์ € ์ง€์–ด์ ธ์•ผ ํ•˜๋Š” ๊ฑด๋ฌผ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฑด๋ฌผ์˜ ๋ฒˆํ˜ธ๋Š” 1๋ถ€ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ๋™์  ๊ณ„ํš๋ฒ•(Dynamic Programming)๊ณผ ์œ„์ƒ ์ •๋ ฌ(Topological Sort)๋ฅผ ์‚ฌ์šฉํ•ด ํ’€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง„์ž… ์ฐจ์ˆ˜๊ฐ€ 0์ธ ๋…ธ๋“œ(v)์—์„œ ๋‹ค๋ฅธ ์ธ์ ‘ ๋…ธ๋“œ(other)๋กœ ํ–ฅํ•  ๋•Œ, ๋‹ค์Œ ๋กœ์ง๋งŒ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. *constructionTimes[i] : i ๋ฒˆ์งธ ๊ฑด๋ฌผ์˜ ๊ฑด์„ค ์‹œ๊ฐ„ *answers[i] : ๋จผ์ € ์ง€์–ด์•ผ ํ•˜๋Š” ๊ฑด๋ฌผ์„ ์ง“๊ณ  ๋‚œ ํ›„, i ๋ฒˆ์งธ ๊ฑด๋ฌผ๊นŒ์ง€ ์ง“๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„ answers[o..

๐Ÿค–Algorithm/BOJ 2023. 12. 19. 15:06

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 1766๋ฒˆ: ๋ฌธ์ œ์ง‘ ์ฒซ์งธ ์ค„์— ๋ฌธ์ œ์˜ ์ˆ˜ N(1 ≤ N ≤ 32,000)๊ณผ ๋จผ์ € ํ‘ธ๋Š” ๊ฒƒ์ด ์ข‹์€ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ •๋ณด์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ๋‘ ์ •์ˆ˜์˜ ์ˆœ์„œ์Œ A,B๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์œ„์ƒ ์ •๋ ฌ(Topological Sort)์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ํ›„, ํ’€์–ด๋ณด๋ ค๊ณ  ๊ณจ๋ž๋˜ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์œ„์ƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•˜๋˜, ์‰ฌ์šด ๋ฌธ์ œ๋ถ€ํ„ฐ ํ’€์–ด์•ผ ํ•˜๋‹ˆ ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue)๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ์™ธ์—๋Š” ๋” ์ด์ƒ ์„ค๋ช…ํ•  ๋‚ด์šฉ์ด ์ง„์งœ๋กœ ์—†๊ธฐ์—, ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ฒจ๋ถ€ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. โœ๏ธ์†Œ์Šค ์ฝ”๋“œ ๋ฐ ๊ฒฐ๊ณผ #include #include #include..

๐Ÿค–Algorithm/BOJ 2023. 12. 19. 14:22

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 1074๋ฒˆ: Z ํ•œ์ˆ˜๋Š” ํฌ๊ธฐ๊ฐ€ 2N × 2N์ธ 2์ฐจ์› ๋ฐฐ์—ด์„ Z๋ชจ์–‘์œผ๋กœ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2×2๋ฐฐ์—ด์„ ์™ผ์ชฝ ์œ„์นธ, ์˜ค๋ฅธ์ชฝ ์œ„์นธ, ์™ผ์ชฝ ์•„๋ž˜์นธ, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์นธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด Z๋ชจ์–‘์ด๋‹ค. N > 1์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์„ www.acmicpc.net ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์ฒ˜์Œ์— ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ณ„ ์ƒ๊ฐ์—†์ด ๋ฐฐ์—ด ์„ ์–ธํ•˜๊ณ  ๋ถ„ํ•  ์ •๋ณต์„ ํ–ˆ๋‹ค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ. (\( 2^{15} \times 2^{15} \)) ๋ฐฐ์—ด ์—†์ด ์นด์šดํŒ… ๋ณ€์ˆ˜ ํ•˜๋‚˜๋กœ๋งŒ ์•„๋ฌด ์ƒ๊ฐ์—†์ด ์…Œ๋‹ค๊ฐ€ ์‹œ๊ฐ„ ์ดˆ๊ณผ. (ํ•˜๋‚˜์”ฉ ๋Œ๋ฉด์„œ ์ ๊ฒ€ํ•˜๋ฉด ๊ฒฐ๊ตญ \(\mathrm{O( 2^{15} \times 2^{15})}\)) ๊ทธ๋ž˜์„œ 4๋“ฑ๋ถ„์„ ํ•˜๊ณ , ์ฐพ๊ณ ์ž ํ•˜๋Š” (ํ–‰, ์—ด)์ด ํ•ด๋‹น ์นธ์— ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ๊ฐํ˜• ๊ฐœ์ˆ˜๋งŒํผ ๋”ํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ฐพ๊ณ ์ž ํ•˜๋Š”..

๐Ÿค–Algorithm/BOJ 2023. 12. 18. 14:16

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 1916๋ฒˆ: ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ ์ฒซ์งธ ์ค„์— ๋„์‹œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง€๊ณ  ๋‘˜์งธ ์ค„์—๋Š” ๋ฒ„์Šค์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์…‹์งธ ์ค„๋ถ€ํ„ฐ M+2์ค„๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฒ„์Šค์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋จผ์ € ์ฒ˜์Œ์—๋Š” ๊ทธ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์–ผ๋งˆ ์ „์— ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra Algorithm)์„ ๊ณต๋ถ€ํ–ˆ์—ˆ์œผ๋‹ˆ, ๋จธ๋ฆฟ ์†์—์„œ ์ธ์ถœํ•˜๋Š” ์—ฐ์Šต์„ ์œ„ํ•ด ๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฌธ์ œ๋ฅผ ํ•˜๋‚˜ ํ’€์–ด๋ดค์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ง์ด ์–ด๋ ค์šด ๊ฑด์ง€, ์ œ๊ฐ€ ๋ฉ์ฒญํ•œ ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋งค๋ฒˆ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ ๊ฐ™์•„์š”... ๊ทธ๋ž˜์„œ ์—ฐ์Šต์žฅ์— ๊ทธ๋ฆผ ๊ทธ๋ ค๊ฐ€๋ฉฐ ํ’‰๋‹ˆ๋‹ค. ( "distances[v] vs distances[u] + nextCost" ๐Ÿ‘‰๐Ÿป ์ด๊ฒŒ ์ ค ํ—ท๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค. ) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€..

๐Ÿค–Algorithm/BOJ 2023. 12. 13. 18:45

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 1987๋ฒˆ: ์•ŒํŒŒ๋ฒณ ์„ธ๋กœ $R$์นธ, ๊ฐ€๋กœ $C$์นธ์œผ๋กœ ๋œ ํ‘œ ๋ชจ์–‘์˜ ๋ณด๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ณด๋“œ์˜ ๊ฐ ์นธ์—๋Š” ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ํ•˜๋‚˜์”ฉ ์ ํ˜€ ์žˆ๊ณ , ์ขŒ์ธก ์ƒ๋‹จ ์นธ ($1$ํ–‰ $1$์—ด) ์—๋Š” ๋ง์ด ๋†“์—ฌ ์žˆ๋‹ค. ๋ง์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋„ค ์นธ ์ค‘์˜ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • DFS + ๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฐ™์€ ๋ฌธ์ž ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ์œ„ํ•ด set์„ ์ด์šฉํ–ˆ๋Š”๋ฐ, ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚˜๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์•ŒํŒŒ๋ฒณ์€ 26๊ฐœ๊ฐ€ ์žˆ๊ณ  ๊ฐ๊ฐ ํ•œ ๋ฒˆ์”ฉ๋งŒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ, vector Alphabet(26, false) ๋ฐฐ์—ด์„ ํ†ตํ•ด ๋ฐฉ๋ฌธ ์—ฌ๋ถ€๋ฅผ ๊ด€๋ฆฌํ•˜๋‹ˆ ํ†ต๊ณผ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. \(\mathrm{O(1)} \) ๊ณผ \( \mathrm{O(log \ N)..

๐Ÿค–Algorithm/BOJ 2023. 12. 13. 17:38

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 14502๋ฒˆ: ์—ฐ๊ตฌ์†Œ ์ธ์ฒด์— ์น˜๋ช…์ ์ธ ๋ฐ”์ด๋Ÿฌ์Šค๋ฅผ ์—ฐ๊ตฌํ•˜๋˜ ์—ฐ๊ตฌ์†Œ์—์„œ ๋ฐ”์ด๋Ÿฌ์Šค๊ฐ€ ์œ ์ถœ๋˜์—ˆ๋‹ค. ๋‹คํ–‰ํžˆ ๋ฐ”์ด๋Ÿฌ์Šค๋Š” ์•„์ง ํผ์ง€์ง€ ์•Š์•˜๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ํ™•์‚ฐ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ์—ฐ๊ตฌ์†Œ์— ๋ฒฝ์„ ์„ธ์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์—ฐ๊ตฌ์†Œ๋Š” ํฌ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์—ฐ๊ตฌ์†Œ์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ๋Œ€ \(8 \times 8\) ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒฝ์„ 3๊ฐœ ์„ค์น˜ํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด ํƒ์ƒ‰ํ•˜์—ฌ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ BFS ํƒ์ƒ‰์„ ์ž˜ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ธ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋„ค์š”. 2์ฐจ์› ๋ฐฐ์—ด์— ์—ฐ๊ตฌ์†Œ ์ •๋ณด๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ณ , ๋ฐ”์ด๋Ÿฌ์Šค์˜ ์œ„์น˜ ์ •๋ณด๋„ ๋ณ„๋„์˜ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ์กฐํ•ฉ(Combination) ๋ฐฉ์‹์„ ์ด์šฉํ•ด ์—ด ๋ฐฉํ–ฅ ์ˆœ์„œ๋กœ ๋ฒฝ 3๊ฐœ๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๋นˆ ๊ณต๊ฐ„์ผ ๋•Œ์—๋งŒ ๋ฒฝ์„ ์„ค์น˜ํ•œ๋‹ค. ๋ฒฝ์„ 3๊ฐœ ์„ค์น˜ ๋‹ค ํ–ˆ๋‹ค๋ฉด, 3๋ฒˆ ๊ณผ์ •์„ ์ง„ํ–‰ ํ›„..

๐Ÿค–Algorithm/BOJ 2023. 12. 13. 16:45