๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์˜ค๋ธ”์™„ (5)

Unfazedโ—๏ธ๐ŸŽฏ

๋„คํŠธ์›Œํฌ ๊ณ„์ธต : ๋ฐ์ดํ„ฐ ํ‰๋ฉด(data plane) & ์ œ์–ด ํ‰๋ฉด(control plane) ๊ฐœ์š”

์ „์†ก ๊ณ„์ธต์ด๋‚˜ ์‘์šฉ ๊ณ„์ธต๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์€ ๊ฐ ํ˜ธ์ŠคํŠธ์™€ ๋„คํŠธ์›Œํฌ์˜ ๋ผ์šฐํ„ฐ๋งˆ๋‹ค ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ์ผ๋ถ€๊ฐ€ ์กด์žฌํ•œ๋‹ค.(ํ”„๋กœํ† ์ฝœ ์Šคํƒ ์ค‘ ๊ฐ€์žฅ ๋ณต์žกํ•œ ๊ณ„์ธต) ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์€ ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ‰๋ฉด(data plane)๊ณผ ์ œ์–ด ํ‰๋ฉด(control plane) ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ‰๋ฉด(data plane) ํŒŒํŠธ ์ฃผ์š” ๋‚ด์šฉ- ๋ผ์šฐํ„ฐ๋ณ„ ์ œ์–ด(per-router)๋ผ๋Š” ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์˜ ๊ธฐ๋Šฅ์€ ํ•œ ๋ผ์šฐํ„ฐ์˜ ์ž…๋ ฅ ๋งํฌ์— ๋„์ฐฉํ•œ ๋ฐ์ดํ„ฐ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ•œ ๋ชฉ์  ๋ผ์šฐํ„ฐ์˜ ์ถœ๋ ฅ ๋งํฌ์— ์–ด๋–ป๊ฒŒ ๋„์ฐฉํ•˜๋Š”์ง€๋ฅผ ๊ฒฐ์ •- ์ „ํ†ต์ ์ธ IP ํฌ์›Œ๋”ฉ(๋ฐ์ดํ„ฐ๊ทธ๋žจ์˜ ๋ชฉ์ ์ง€ ์ฃผ์†Œ ๊ธฐ๋ฐ˜), ์ผ๋ฐ˜ํ™”๋œ ํฌ์›Œ๋”ฉ(๋ฐ์ดํ„ฐ๊ทธ๋žจ์˜ ์—ฌ๋Ÿฌ ํ•„๋“œ๊ฐ’ ์‚ฌ์šฉ)- IPv4, IPv6 ํ”„๋กœํ† ์ฝœ๊ณผ ์ฃผ์†Œ ์ฒด๊ณ„ ์ œ์–ด ํ‰๋ฉด(control plane) ํŒŒํŠธ ์ฃผ์š” ๋‚ด..

[Java] ์ •๋ ฌ, ๊ทธ๋ฆฌ๋”” | ๋ฐฑ์ค€ 1083 ์†ŒํŠธ

https://www.acmicpc.net/problem/1083 ์ ‘๊ทผ ๋ฐฉ๋ฒ• : ๊ทธ๋ฆฌ๋””ํ•˜๊ฒŒ ๊ฐ ์œ„์น˜์—์„œ ํ˜„์žฌ ๋ฒ”์œ„ ๋‚ด ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์•ž์œผ๋กœ ์ด๋™์‹œํ‚จ๋‹ค.- S์˜ ์ œํ•œ ๋•Œ๋ฌธ์—, ๊ฐ€๋Šฅํ•œ ๊ตํ™˜ ํšŸ์ˆ˜(j - i  ๋‘ ์›์†Œ ๊ตํ™˜ ๊ณผ์ • :ํ˜„์žฌ ์œ„์น˜ i ์—์„œ i+1๋ถ€ํ„ฐ i+S๋ฒ”์œ„ ๋‚ด์—์„œ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.ํ•ด๋‹น ๊ฐ’์„ i๋กœ ์ด๋™์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ธ์ ‘ ์›์†Œ ๊ฐ„ ๊ตํ™˜์„ ๋ฐ˜๋ณตํ•œ๋‹ค. (๋ฒ„๋ธ” ์†ŒํŠธ์™€ ์œ ์‚ฌ)๊ฐ’์„ ์ด๋™ ์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๊ตํ™˜ ํšŸ์ˆ˜๋งŒํผ S๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.์ข…๋ฃŒ ์กฐ๊ฑด : S๊ฐ€ 0์ด ๋˜๊ฑฐ๋‚˜, ๋ฐฐ์—ด์„ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ–ˆ์„ ๊ฒฝ์šฐ ์ข…๋ฃŒ ํ•ต์‹ฌ ์ฝ”๋“œ S ์ œํ•œ ๋‚ด์—์„œ ๊ฐ€์žฅ ์™ผ์ชฝ ์ž๋ฆฌ๋ถ€ํ„ฐ ์ตœ๋Œ€ ๊ฐ’์œผ๋กœ ์ฑ„์›Œ์ฃผ๋Š” ๊ฒƒ์— ์ง‘์ค‘ํ•œ๋‹ค.๋งค ๋ฐ˜๋ณต ๋งˆ๋‹ค S-=(maxIndex - i); ๋กœ ๊ตํ™˜ํ•œ ํšŸ์ˆ˜๋งŒํผ S๋ฅผ ๊ฐ์†Œ์‹œ์ผœ์ค€๋‹ค.private static void s..

๋ฐ์ดํ„ฐ ์ „์†ก - ์˜ค๋ฅ˜ ๊ฒ€์ถœ ๊ธฐ๋ฒ•

ํ”„๋ ˆ์ž„ ์ „์†ก ๊ณผ์ •์˜ ์˜ค๋ฅ˜๋ฅผ ๊ทน๋ณตํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•1) ์ „์†ก ํ”„๋ ˆ์ž„์— ์˜ค๋ฅ˜ ๊ฒ€์ถœ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ํ˜ธ์ŠคํŠธ๊ฐ€ ์ „์†ก ๊ณผ์ •์˜ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœ์ฃผ๋กœ ์žฌ์ „์†ก์œผ๋กœ ์ด๋ฃจ์–ด์ง. ex) ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ, ๋‹คํ•ญ ์ฝ”๋“œ ๋ฐฉ์‹๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ์ „์†ก ๋ฐฉ์‹์„ ์ด์šฉํ•ด ์˜ค๋ฅ˜๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ์—ญ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ๋ณต๊ตฌ(BEC, Backward Error Correction), ARQ(Automatic Repeat reQuest)๋ฐฉ์‹์„ ์ด์šฉํ•œ๋‹ค. 2) ์ „์†ก ํ”„๋ ˆ์ž„์— ์˜ค๋ฅ˜ ๋ณต๊ตฌ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ์˜ค๋ฅ˜ ๊ฒ€์ถœ๊ณผ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ˆ˜ํ–‰์˜ค๋ฅ˜ ๋ณต๊ตฌ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ๊ฐ€ ์˜ค๋ฅ˜ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ์ˆœ๋ฐฉํ–ฅ ์˜ค๋ฅ˜ ๋ณต๊ตฌ(FEC, Forward Error Correction)๋ผ ํ•จex) ํ•ด๋ฐ ์ฝ”๋“œ(Hamming Code)์—๋Š” 1 ๋น„ํŠธ ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜๊ณ  ๋ณต๊ตฌํ•˜..

[Java] ๋‹ค์ต์ŠคํŠธ๋ผ, BFS | ๋ฐฑ์ค€ 2665 ๋ฏธ๋กœ๋งŒ๋“ค๊ธฐ

https://www.acmicpc.net/problem/2665  ์ ‘๊ทผ ๋ฐฉ๋ฒ•  ์ด ๋ฌธ์ œ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ ๋ฐฉ์„ ๋…ธ๋“œ๋กœ ๋ณด๊ณ , ๊ฒ€์€ ๋ฐฉ์—์„œ ํฐ ๋ฐฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ ๊ฐ€์ค‘์น˜๋กœ ๊ฐ„์ฃผํ•ด ์ตœ์†Œ ๋ณ€๊ฒฝ ํšŸ์ˆ˜ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•œ๋‹ค. ์ตœ๋‹จ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ '์ตœ์†Œ ๋ณ€๊ฒฝ ํšŸ์ˆ˜'๋ฅผ ์ฐพ๋Š”๋‹ค๋Š” ์ ์ด ์ผ๋ฐ˜์ ์ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ์˜ ์ฐจ์ด๋‹ค. ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋ฐฉ๊นŒ์ง€ ๊ฐ€๋Š” ๋™์•ˆ ๊ฒ€์€ ๋ฐฉ(0)์„ ์ตœ์†Œ๋กœ ์ง€๋‚˜์•ผ ํ•œ๋‹ค.์ฆ‰ ํฐ ๋ฐฉ(1)์„ ์ง€๋‚˜๊ฐˆ ๋•Œ๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๊ฒ€์€ ๋ฐฉ(0)์„ ๊ฑฐ์น  ๋•Œ๋Š” ๋น„์šฉ์ด 1 ๋งŒํผ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๊ณ , ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋ฐฉ๊นŒ์ง€ BFS๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ๋๋ฐฉ์— ๋„์ฐฉํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ(PriorityQueue)๋ฅผ ์‚ฌ์šฉํ•ด ํ˜„์žฌ ๋ณ€๊ฒฝ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๊ฒฝ๋กœ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•œ๋‹ค..

๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„๊ณผ ์ •์˜

ํŠธ๋ฆฌ : ์„ ํ˜•์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ํž˜๋“  ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ ๊ทธ๋ž˜ํ”„๋Š” ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ณด๋‹ค ์ข€๋” ์ผ๋ฐ˜์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์ด๋‚˜ ์ถ”์ƒ์ ์ธ ๊ฐœ๋… ๊ฐ„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ex) ์—ฌ๋ ค ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ๋ง, ์‚ฌ๋žŒ๋“ค ๊ฐ„์˜ ์ง€์ธ ๊ด€๊ณ„, ์›น์‚ฌ์ดํŠธ ๊ฐ„์˜ ๋งํฌ ๊ด€๊ณ„ ๋“ฑ์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ ํŠธ๋ฆฌ์™€์˜ ์ฐจ์ด => ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ œ์•ฝ์ด ์กด์žฌํ•˜๋‚˜ ๊ทธ๋ž˜ํ”„๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์™€ ๊ฐ™์€ ์ œ์•ฝ์ด ์—†์Œ ๊ทธ๋ž˜ํ”„์˜ ์ •์˜์–ด๋–ค ์ž๋ฃŒ๋‚˜ ๊ฐœ๋…์„ ํ‘œํ˜„ํ•˜๋Š” ์ •์ (vertex)๋“ค์˜ ์ง‘ํ•ฉ V์™€ ์ด๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)๋“ค์˜ ์ง‘ํ•ฉ E๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ ๊ตฌ์กฐ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ์ •์˜๋˜๋ฉฐ ์ •์ ์˜ ์œ„์น˜, ๊ฐ„์„ ์˜ ์ˆœ์„œ ๋“ฑ์€ ๊ทธ๋ž˜ํ”„์— ์ •์˜์— ํฌํ•จ๋˜์ง€ ์•Š์Œ.  ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ณ€ํ˜•๋œ ํ˜•ํƒœ๊ฐ€ ์กด์žฌ ๊ฐ„์„ ์ด ๊ฐ€์ง„ ..