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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ46

[๊ฐœ๋… ์ •๋ฆฌ] ํˆฌ ํฌ์ธํ„ฐ ์ตœ๊ทผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋ฉด์„œ ์‹œ๊ฐ„ ์ดˆ๊ณผ์™€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋กœ ์ธํ•ด ์ƒ๋‹นํžˆ ์• ๋ฅผ ๋จน์—ˆ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ์˜ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ์•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•˜๋‚˜์˜ ๋ฐฐ์—ด์—์„œ ๋‘ ๊ฐœ์˜ ์ธ๋ฑ์Šค ํฌ์ธํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฐฑ์ค€ - 2467. ์šฉ์•ก ์ด ๋ฌธ์ œ์—์„œ 0๊ณผ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์„ ๊ฐ€์ง€๋Š” ๋‘ ์›์†Œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋จผ์ € O(N^2)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ์ฒ˜๋Ÿผ N์˜ ํฌ๊ธฐ๊ฐ€ O(N^2)์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์— ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋ฉด O(N)์— ํ•ด๋‹น ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. (์ด ๋ฌธ์ œ๋Š” ์ •๋ ฌ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „์ฒด ๋ฌธ์ œ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(.. 2021. 4. 1.
[๋ฐฑ์ค€] - 2206. ๋ฒฝ๋ถ€์ˆ˜๊ณ  ์ด๋™ํ•˜๊ธฐ ๋ฌธ์ œ ํ’€์ด ์ด ๋ฌธ์ œ๋Š” ์˜ˆ์ „์— BFS๋ฅผ ํ•œ์ฐฝ ํ’€์—ˆ์„ ๋•Œ์—๋Š” ๋ชป ํ’€์—ˆ๋˜ ๋ฌธ์ œ์˜€๋Š”๋ฐ ์ด์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ธ 1600. ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์˜๊ฐ์„ ์–ป์–ด์„œ ๋‹ค์‹œ ๋„์ „ํ–ˆ๋”๋‹ˆ ์‰ฝ๊ฒŒ ํ’€๋ ธ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์ผ๋ฐ˜์ ์ธ BFS๋ณด๋‹ค ๊นŒ๋‹ค๋กœ์šด ์ด์œ ๋Š” ์–ด๋–ค ์ขŒํ‘œ์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ 2๊ฐ€์ง€(์ด์ „์— ๋ฒฝ์„ ๋ถ€์‹  ๊ฒฝ์šฐ, ์ด์ „์— ๋ฒฝ์„ ๋ถ€์ˆ˜์ง€ ์•Š์€ ๊ฒฝ์šฐ)๋ผ๋Š” ์ ์ด๋‹ค. ๋”ฐ๋ผ์„œ 2์ฐจ์› ๋ฐฉ๋ฌธ ๋ฐฐ์—ด๋กœ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  3์ฐจ์› ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. 3์ฐจ์› ๋ฐฐ์—ด์—์„œ 0๋ฒˆ์จฐ ์ธ๋ฑ์Šค๋Š” ๋ฒฝ์„ ์ด๋ฏธ ๋ถ€์ˆ˜๊ณ  ์˜จ ๊ฒฝ์šฐ, 1๋ฒˆ์งธ ์ธ๋ฑ์Šค๋Š” ๋ฒฝ์„ ์•„์ง ๋ถ€์ˆ˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์ด๋‹ค. bfs๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋‹ค์Œ์˜ 3๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์—ˆ๋‹ค. ํ˜„์žฌ ๋ฒฝ์„ ๋ถ€์ˆ  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋‚จ์•„์žˆ๊ณ  ๋‹ค์Œ ๋ฐฉ๋ฌธํ•  ์ขŒํ‘œ๊ฐ€ ๋ฒฝ์ธ ๊ฒฝ์šฐ, ๊ธฐํšŒ๋ฅผ ์†Œ์ง„ํ•˜๊ณ  ๋ฒฝ์„ ๋ฐฉ๋ฌธ ๊ธฐํšŒ๊ฐ€.. 2021. 3. 24.
[๋ฐฑ์ค€] - 1277. ๋ฐœ์ „์†Œ ์„ค์น˜ ๋ฌธ์ œ ํ’€์ด 1๋ฒˆ ๋ฐœ์ „์†Œ๋ถ€ํ„ฐ N๋ฒˆ์งธ ๋ฐœ์ „์†Œ๊นŒ์ง€์˜ ์ตœ์†Œ ๋น„์šฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ๋จผ์ € ๊ฐ ๋ฐœ์ „์†Œ์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅ(plant)ํ•˜๊ณ , ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ €์žฅ(connected)ํ•˜์˜€๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „, 1๋ฒˆ๋ถ€ํ„ฐ ๊ฐ ์ •์ ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” distance ๋ฐฐ์—ด์„ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์—๋Š” 0, ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” INF๋กœ ์ดˆ๊ธฐํ™”ํ•ด์ฃผ์—ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์ค‘์น˜๋ฅผ ๋”ํ•ด์ฃผ๋Š” ๋ถ€๋ถ„์€ ๊ฐ ์ขŒํ‘œ๊ฐ„์˜ ๊ฑฐ๋ฆฌ์ด๊ธฐ ๋–„๋ฌธ์— ๋‘ ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์„ ํ†ตํ•ด ๊ตฌํ–ˆ๋‹ค. ์ถ”๊ฐ€์ ์œผ๋กœ ์ธ์ ‘ํ•œ ํ–‰๋ ฌ์—์„œ ์ฐพ๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์™€ ๋‹ฌ๋ฆฌ ๋ชจ๋“  ๋ฐœ์ „์†Œ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์†ํ•ด์„œ ๊ฐฑ์‹ ํ•ด ์ค„ ํ•„์š”๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 1~N๊นŒ์ง€ ์ž๊ธฐ ์ž์‹ ์„ ์ œ์™ธํ•˜๊ณ  ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐฑ์‹ ํ•ด์ฃผ์—ˆ๋‹ค. ํ’€.. 2021. 3. 24.
[Kubernetes Best Practice] 10. ํŒŒ๋“œ์™€ ์ปจํ…Œ์ด๋„ˆ ๋ณด์•ˆ ์ด ๊ธ€์€ Kubernetes Best Practice๋ฅผ ์ฝ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ถ€๋ถ„๊ณผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.๋ชจ๋“  ๋‚ด์šฉ์€ ์ฑ…์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ ์ž์„ธํ•œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„๋“ค์€ ์ฑ…์„ ๊ตฌ๋งคํ•ด์„œ ์ฝ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ตœ๊ทผ ์„œ๋น„์Šค ๋ฉ”์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฑฐ๋‚˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ค์—ˆ๋˜ ์ƒ๊ฐ์€ ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ธ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋ ๋งŒํ•œ ์ฑ…์„ ๋ฐœ๊ฒฌํ•ด์„œ ์ฝ์–ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Pod์˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค API์—๋Š” PodSecurityPolicy์™€ RuntimeClass๋ผ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. PodSecurityPolicy PodSecurityPolicy๋Š” ํด๋Ÿฌ์Šคํ„ฐ.. 2021. 3. 23.
[๊ฐœ๋… ์ •๋ฆฌ] ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ๋‹ค์ต์ŠคํŠธ๋ผ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ BFS๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด BFS๊ฐ€ ์•„๋‹Œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ํ˜•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ •์  ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊ณผ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ์ •์  ๊ฐ„์˜ ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ - ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์ €๋ฒˆ ๊ธ€์—์„œ๋Š” 4๋ฒˆ ์œ ํ˜•์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” 2๋ฒˆ ์œ ํ˜•์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์‹œ์ž‘ ์ •์ ์—์„œ ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ์†Œ์ธ ์ •์ ์„ ์„ ํƒํ•ด .. 2021. 3. 22.
[๊ฐœ๋… ์ •๋ฆฌ] ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†๋Š” ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ BFS๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด BFS๊ฐ€ ์•„๋‹Œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์œ ํ˜•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์ •์  ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ๊ณผ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ํ•˜๋‚˜์˜ ์ •์ ์œผ๋กœ ๊ฐ€๋Š” ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ์ •์  ๊ฐ„์˜ ๋ชจ๋“  ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ ์ด ์ค‘ 4๋ฒˆ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ์ •์ ๊ฐ„์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. ์•ž์œผ๋กœ์˜ ์„ค๋ช…์—์„œ ์‚ฌ์šฉ๋  ๊ทธ๋ž˜ํ”„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” .. 2021. 3. 16.