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

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

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 17472๋ฒˆ: ๋‹ค๋ฆฌ ๋งŒ๋“ค๊ธฐ 2 ์ฒซ์งธ ์ค„์— ์ง€๋„์˜ ์„ธ๋กœ ํฌ๊ธฐ N๊ณผ ๊ฐ€๋กœ ํฌ๊ธฐ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์ง€๋„์˜ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ค„์€ M๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ์ˆ˜๋Š” 0 ๋˜๋Š” 1์ด๋‹ค. 0์€ ๋ฐ”๋‹ค, 1์€ ๋•…์„ ์˜๋ฏธํ•œ๋‹ค. www.acmicpc.net ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • BFS + DFS + ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ด์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š”, ๋Œ€๋‹จํžˆ ์ฒด๋ ฅ์ ์œผ๋กœ ํž˜๋“  ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด๋“ค์ด ๊นŒ๋‹ค๋กญ์ง„ ์•Š์•„, ๊ตฌํ˜„๋งŒ ์ œ๋Œ€๋กœ ํ•œ๋‹ค๋ฉด ํ†ต๊ณผ๋Š” ์‰ฝ๊ฒŒ ๋˜๋„ค์š”. ์ œ๊ฐ€ ํ‘ผ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฃผ์–ด์ง„ ์ž…๋ ฅ์„ 2์ฐจ์› ๋ฐฐ์—ด์— ์ €์žฅํ•˜๋˜, ๋•…(1)์€ 1์ด ์•„๋‹ˆ๋ผ ์—„์ฒญ ํฐ ๋‹ค๋ฅธ ์ˆซ์ž(1์–ต)๋กœ ๋Œ€์‹  ์ฑ„์›Œ์ค๋‹ˆ๋‹ค. BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด, ๊ฐ ์„ฌ์˜ ๋ฒˆํ˜ธ๋ฅผ ํ•ด๋‹น ์„ฌ์˜ ์˜์—ญ์— ์ฑ„..

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

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 13549๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 3 ์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  N(0 ≤ N ≤ 100,000)์— ์žˆ๊ณ , ๋™์ƒ์€ ์  K(0 ≤ K ≤ 100,000)์— ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๊ฑท๊ฑฐ๋‚˜ ์ˆœ๊ฐ„์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ, ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ ๋•Œ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ป ํ’€์ด ๊ณผ์ • ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ฐ์Šต ์ค‘์— ์žˆ์–ด, ์ €๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. (๋น„์šฉ์— ์Œ์ˆ˜๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ) ์‹œ์ž‘ ์œ„์น˜๋Š” N, ๋„์ฐฉ ์œ„์น˜๋Š” K๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. N์—์„œ i๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋ฐ์— ๋“œ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด, times๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ๋ฒ”์œ„๊ฐ€ 0 ~ 100,000์ด๋‹ˆ, ์ด ๋ฒ”์œ„๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ์˜ ํฌ๊ธฐ๋กœ ์„ ์–ธ ํ›„, ๋ฌดํ•œ๋Œ€ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. times[N] = 0 ์œผ๋กœ ์ดˆ๊ธฐ..

๐Ÿค–Algorithm/BOJ 2023. 12. 6. 23:00

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ 16928๋ฒˆ: ๋ฑ€๊ณผ ์‚ฌ๋‹ค๋ฆฌ ๊ฒŒ์ž„ ์ฒซ์งธ ์ค„์— ๊ฒŒ์ž„ํŒ์— ์žˆ๋Š” ์‚ฌ๋‹ค๋ฆฌ์˜ ์ˆ˜ N(1 ≤ N ≤ 15)๊ณผ ๋ฑ€์˜ ์ˆ˜ M(1 ≤ M ≤ 15)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์‚ฌ๋‹ค๋ฆฌ์˜ ์ •๋ณด๋ฅผ ์˜๋ฏธํ•˜๋Š” x, y (x < y)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. x๋ฒˆ ์นธ์— ๋„์ฐฉํ•˜๋ฉด, y๋ฒˆ ์นธ์œผ www.acmicpc.net ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • BFS๋กœ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ธ๋ฐ, ์ €๋Š” ์‚ฌ๋‹ค๋ฆฌ๋‚˜ ๋ฑ€์„ ํƒ€๊ณ  ๊ฐ„ ๋ณด๋“œ์นธ์„ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌํ•ด์ฃผ์งˆ ์•Š์•„, ์—‰๋šฑํ•œ ๋‹ต์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ์ด๊ฑธ ๋นจ๋ฆฌ ์•Œ์•„์ฑ„์ง€ ๋ชปํ•ด์„œ ์‹œ๊ฐ„์„ ์ข€ ํ—ˆ๋น„ํ–ˆ๋„ค์š”. ์•„๋ฌดํŠผ, ์ œ๊ฐ€ ํ‘ผ ํ’€์ด ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฑ€์ด๋‚˜ ์‚ฌ๋‹ค๋ฆฌ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” vector teleports(100 + 1)์„ ์ค€๋น„ํ•œ๋‹ค. teleports[i] = 0 ๐Ÿ‘‰๐Ÿป ๋ฑ€์ด๋‚˜ ์‚ฌ๋‹ค๋ฆฌ๊ฐ€ ์—†์Œ์„ ์˜๋ฏธ telep..

๐Ÿค–Algorithm/BOJ 2023. 12. 1. 18:11

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿ‘จ‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ์ œ ๋ฌธ์žฅ ๋…ํ•ด๋ ฅ์— ํ•˜์ž๊ฐ€ ์žˆ๋Š”๊ฑด์ง„ ๋ชฐ๋ผ๋„, ์ฒ˜์Œ์— ๋ฌธ์ œ ์ฝ๊ณ  ๋ฌด์Šจ ์†Œ๋ฆฌ์ง€ ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์…”ํ‹€ ๋ฒ„์Šค ์šดํ–‰ ํšŸ์ˆ˜์ธ \(n\) ๋ฒˆ ๋‚ด์— ์‚ฌ๋ฌด์‹ค์— ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋Šฆ์€ ์‹œ๊ฐ„์„ ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด์—ˆ๋„ค์š”. ๋‹จ์ˆœ ๊ตฌํ˜„ ๋ฌธ์ œ์ด๊ธด ํ•œ๋ฐ, ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋Š” ํ•ญ์ƒ ๊ณ„์‚ฐ ๋ถ€๋ถ„์—์„œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ์€ ๊ณ„์‚ฐํ•˜๊ธฐ ์‰ฝ๊ฒŒ, string์„ int๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ๋จผ์ € ํ•ด๋ณด์ฃ . 1. String ๐Ÿ‘‰๐Ÿป Int๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ ์ฃผ์–ด์ง€๋Š” ์‹œ๊ฐ„์€ "HH:MM" ํ˜•ํƒœ๋ฅผ ๋„๊ณ  ์žˆ๋‹ค๊ณ  ๋ฌธ์ œ..

๐Ÿค–Algorithm/Programmers 2023. 11. 18. 00:10

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿง‘‍๐Ÿ’ปํ’€์ด ๊ณผ์ • ๐Ÿ”—์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST, Minimum Spanning Tree)๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์—์„œ ํฌ๋ฃจ์Šค์นผ(Kruskal) ๋˜๋Š” ํ”„๋ฆผ(Prim)์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ €๋Š” ํฌ๋ฃจ์Šค์นผ(Kruskal)์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ์‹ ์žฅ ํŠธ๋ฆฌ์˜ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋กœ ์‚ฌ์ดํด์ด ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค๊ฐ€ ์žˆ๋Š”๋ฐ, ๋ถ„๋ฆฌ ์ง‘ํ•ฉ(Disjoint set)์˜ ๊ฐœ๋…์ธ ๐Ÿ”—์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ(Union Find)๋ผ ๋ถˆ๋ฆฌ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์‰ฝ๊ฒŒ ์ ๊ฒ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธฐํšŒ์— ๊ณต๋ถ€ํ•˜์—ฌ ๊ฐœ๋…์„ ..

๐Ÿค–Algorithm/Programmers 2023. 10. 22. 16:40

๐Ÿ”—๋ฌธ์ œ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ๐Ÿง‘‍๐Ÿ’ป ํ’€์ด ๊ณผ์ • ์ฒ˜์Œ์—” ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋จผ์ € ๋– ์˜ฌ๋ ธ๋Š”๋ฐ, BFS๋กœ๋„ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๊ฒ ๋‹จ ์ƒ๊ฐ์ด ๋“ค์–ด BFS๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ–‰ ๋ฒˆํ˜ธ๋Š” ๋…ธ๋“œ์˜ ๋ฒˆํ˜ธ, ์—ด ๋ฒˆํ˜ธ๋Š” ํ–‰ ๋ฒˆํ˜ธ ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์˜ ๋ฒˆํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ 2์ฐจ์› ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค. 1๋ฒˆ ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ ํ›„ Queue์— ๋„ฃ๊ณ , BFS ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•œ๋‹ค. Queue์—์„œ ๋…ธ๋“œ(source)๋ฅผ ๊บผ๋‚ธ ํ›„, ํ•ด๋‹น ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธ ์ฒ˜๋ฆฌ ํ›„ Queue์— ๋„ฃ๋Š”๋‹ค. ์ด ๋•Œ, sour..

๐Ÿค–Algorithm/Programmers 2023. 10. 22. 14:46