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

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

[๋ฐฑ์ค€] 20055 ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ ์œ„์˜ ๋กœ๋ด‡ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/20055 20055๋ฒˆ: ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ ์œ„์˜ ๋กœ๋ด‡ ๊ธธ์ด๊ฐ€ N์ธ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๊ฐ€ ์žˆ๊ณ , ๊ธธ์ด๊ฐ€ 2N์ธ ๋ฒจํŠธ๊ฐ€ ์ด ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๋ฅผ ์œ„์•„๋ž˜๋กœ ๊ฐ์‹ธ๋ฉฐ ๋Œ๊ณ  ์žˆ๋‹ค. ๋ฒจํŠธ๋Š” ๊ธธ์ด 1 ๊ฐ„๊ฒฉ์œผ๋กœ 2N๊ฐœ์˜ ์นธ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ฐ ์นธ์—๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด 1๋ถ€ www.acmicpc.net 1. ์ฃผ์–ด์ง„ ์กฐ๊ฑด๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š” ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค. 2. ํฌ๊ฒŒ ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ๊ตฌํ˜„์€ ํ•„์š” ์—†๊ณ  ๋ฌธ์ œ ์ฝ๊ณ  ๋‹จ๊ณ„๋ณ„๋กœ ๊ฐ ๋™์ž‘์„ ๊ผผ๊ผผํžˆ ๊ตฌํ˜„ํ•˜๋ฉด ๋ฌด๋‚œํ•˜๊ฒŒ ํ†ต๊ณผ ๋œ๋‹ค. 3. ๋ฒจํŠธ ํšŒ์ „์€ deque์˜ rotate() ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ํŽธํ•˜๊ณ  ๋กœ๋ด‡์˜ ๋ฐฐ์—ด ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ฐํฌ๋ณด๋‹ค ๊ทธ๋ƒฅ ๋ฆฌ์ŠคํŠธ๊ฐ€ ํŽธํ•˜๊ณ  ๋น ๋ฅด๋‹ค. from collections import deque import sys,.. 2022. 9. 30.
UDP Multiplexing - Demultiplexing ๊ณผ์ •์—์„œ Source port#์˜ ์—ญํ• ์€ ๋ฌด์—‡์ผ๊นŒ? UDP Multiplexing - Demultiplexing ๊ณผ์ •์—์„œ Source port#์˜ ์—ญํ• ๊ณผ IP address ์–ด์ œ ๋„คํŠธ์›Œํฌ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ฌธ๋“ ์ƒ๊ธด ์˜๋ฌธ์ .... โœ” UDP ๋ฐฉ์‹์—์„œ Demux๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ Destination port#์™€ Destination IP addreess ์ •๋ณด๋ฅผ ์ด์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์‚ฌ์ง„์„ ๋ณด๋ฉด... โœ” ๊ทธ๋Ÿฐ๋ฐ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ณด๋ฉด ํ—ค๋” ์ •๋ณด๋ฅผ ์ž˜ ๋ณด๋ฉด ๋‘ ๊ฐ€์ง€ ์˜๋ฌธ์ ์ด ์ƒ๊ธด๋‹ค. ์“ฐ์ง€๋„ ์•Š๋Š” src port#๋Š” ์™œ ์žˆ๋Š”๊ฐ€? ์ •์ž‘ ํ•„์š”ํ•œ dest IP๋Š” ์–ด๋”” ์žˆ๋Š”๊ฐ€? โœ” ๋‘ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ๊ต์žฌ(Computer Networking A Top-Down ApproachKurose. James, Ross, Keith)์— ์žˆ์—ˆ๋‹ค. 1. Source Port number โœ” ์šฐ์„ .. 2022. 9. 30.
[๋ฐฑ์ค€] 2212 ์„ผ์„œ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/2212 2212๋ฒˆ: ์„ผ์„œ ์ฒซ์งธ ์ค„์— ์„ผ์„œ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000), ๋‘˜์งธ ์ค„์— ์ง‘์ค‘๊ตญ์˜ ๊ฐœ์ˆ˜ K(1 ≤ K ≤ 1000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์…‹์งธ ์ค„์—๋Š” N๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ฐ€ ํ•œ ๊ฐœ์˜ ์ •์ˆ˜๋กœ N๊ฐœ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ขŒํ‘œ ์‚ฌ์ด์—๋Š” ๋นˆ ์นธ์ด ํ•˜๋‚˜ ์žˆ www.acmicpc.net ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ๋ฌธ์ œ์ธ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ๊ฐ€ ๊ทธ๋ ‡๋“ฏ์ด ๊ทธ๋ฆฌ๋””์ธ ๊ฑธ ์•Œ๊ณ  ๋‚˜๋ฉด ์‰ฝ๋‹ค. ๊ทธ๋ฆฌ๋””์ธ ๊ฑธ ์•Œ๊ณ  ํ™•์‹ ํ•˜๊ธฐ๊นŒ์ง€๊ฐ€ ์–ด๋ ค์›Œ์„œ ๊ทธ๋ ‡์ง€... ์„ผ์„œ์™€ ์ง‘์ค‘๊ตญ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ตœ์†Œํ™” ํ•ด์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ผ์„œ ๊ฐ„ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ํฐ ์ง€์—ญ์ด ์ง‘์ค‘๊ตญ ์ˆ˜์‹  ์˜์—ญ ๋‚ด์— ํฌํ•จ๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์„ผ์„œ ๊ฐ„ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•ด์„œ ๊ฐ€์žฅ ๊ฑฐ๋ฆฌ๊ฐ€ ํฐ ์ง€์—ญ K - 1๊ฐœ๋ฅผ ์ด ์ง€์—ญ์—์„œ ๋นผ์ฃผ๋ฉด ๋œ.. 2022. 9. 29.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (MST) ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (MST) ์‹ ์žฅ ํŠธ๋ฆฌ (Spanning Tree) โœ” ๊ทธ๋ž˜ํ”„ ๋‚ด์˜ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ โœ” ๊ทธ๋ž˜ํ”„์˜ ์ตœ์†Œ ์—ฐ๊ฒฐ ๋ถ€๋ถ„ ๊ทธ๋ž˜ํ”„ (N - 1)๊ฐœ์˜ ๊ฐ„์„  -> ํŠธ๋ฆฌ ํ˜•ํƒœ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ (Minimum spanning Tree) โœ” Spanning Tree ์ค‘์—์„œ ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜ ํ•ฉ์ด ์ตœ์†Œ(Minimun)์ธ ํŠธ๋ฆฌ โœ” ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ์ผ ์ˆ˜ ์žˆ๋‹ค. MST ๊ตฌํ˜„ - ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ โœ” Greedy๋ฅผ ์ด์šฉํ•ด ๊ฐ ๋‹จ๊ณ„์—์„œ ์‚ฌ์ดํด์„ ์ด๋ฃจ์ง€ ์•Š๋Š” ์ตœ์†Œ ๋น„์šฉ ๊ฐ„์„ ์„ ์„ ํƒํ•œ๋‹ค. ๋™์ž‘ ์ˆœ์„œ ๊ฐ„์„ ์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. (์ตœ์†Œ ๋น„์šฉ) ์ •๋ ฌ๋œ ๊ฐ„์„  ๋ฆฌ์ŠคํŠธ์—์„œ ์ˆœ์„œ๋Œ€๋กœ ์‚ฌ์ดํด์„ ํ˜•์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฐ„์„ ์„ ์„ ํƒํ•œ๋‹ค. (Union - Find ์ด์šฉ: Union-Find ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?!) ์„ ํƒํ•œ ๊ฐ„์„ ์„ ํ˜„์žฌ .. 2022. 9. 29.
[์•Œ๊ณ ๋ฆฌ์ฆ˜] Union-Find ์œ ๋‹ˆ์˜จํŒŒ์ธ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ โœ” ์„œ๋กœ์†Œ ์ง‘ํ•ฉ(Disjoint Set) โœ” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์กด์žฌํ•  ๋•Œ , ์ž„์˜์˜ ๋‘ ๋…ธ๋“œ๊ฐ€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„์— ์†ํ•ด์žˆ๋Š”์ง€ ํŒ๋ณ„ Union & Find Find ๋…ธ๋“œ x๊ฐ€ ํฌํ•จ๋œ ์ง‘ํ•ฉ์„ ์ฐพ๋Š” ์—ฐ์‚ฐ def find_parent(parent, current): if parent[current] != current: return find_parent(parent, parent[current]) return current Union ๋…ธ๋“œ x๊ฐ€ ํฌํ•จ๋œ ์ง‘ํ•ฉ๊ณผ ๋…ธ๋“œ y๊ฐ€ ํฌํ•จ๋œ ๋‘ ์ง‘ํ•ฉ์„ ํ†ตํ•ฉํ•˜๋Š” ์—ฐ์‚ฐ def union_parent(parent, x, y): x = find_parent(parent, x) y = find_parent(parent, y) # ๋‹จ์ˆœํ•œ ํ˜•ํƒœ์—์„œ๋Š” ์ž‘์€ ์ชฝ์œผ๋กœ ํ•ฉ์นœ๋‹ค.. 2022. 9. 28.
[๋ฐฑ์ค€] 3190 ๋ฑ€ (Python/ํŒŒ์ด์ฌ) https://www.acmicpc.net/problem/3190 3190๋ฒˆ: ๋ฑ€ 'Dummy' ๋ผ๋Š” ๋„์Šค๊ฒŒ์ž„์ด ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์—๋Š” ๋ฑ€์ด ๋‚˜์™€์„œ ๊ธฐ์–ด๋‹ค๋‹ˆ๋Š”๋ฐ, ์‚ฌ๊ณผ๋ฅผ ๋จน์œผ๋ฉด ๋ฑ€ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค. ๋ฑ€์ด ์ด๋ฆฌ์ €๋ฆฌ ๊ธฐ์–ด๋‹ค๋‹ˆ๋‹ค๊ฐ€ ๋ฒฝ ๋˜๋Š” ์ž๊ธฐ์ž์‹ ์˜ ๋ชธ๊ณผ ๋ถ€๋”ชํžˆ๋ฉด ๊ฒŒ์ž„์ด ๋๋‚œ๋‹ค. ๊ฒŒ์ž„ www.acmicpc.net ํ์˜ ์„ ์ž…์„ ์ถœ ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•œ ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค. ๊ตฌํ˜„ํ•ด์•ผํ•  ์‚ฌํ•ญ๋“ค์€ ๊ฐ„๋žตํ•˜๊ฒŒ ๋‚˜๋ˆ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฑ€์˜ ์ด๋™ ๊ฒŒ์ž„ ์ข…๋ฃŒ ์กฐ๊ฑด ๋ฒฝ์— ๋ถ€๋”ชํ˜”์„ ๋•Œ(= ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฌ์„ ๋•Œ) ๋ฑ€์˜ ๋ชธํ†ต์— ๋ถ€๋”ชํ˜”์„ ๋•Œ ์‚ฌ๊ณผ๊ฐ€ ์žˆ์„ ๋•Œ ๋ฑ€์˜ ํฌ๊ธฐ๋ฅผ ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋Š” ์˜์—ญ ํ•œ ์นธ๋งŒํผ ๋Š˜๋ ค์ค€๋‹ค. ์‚ฌ๊ณผ๊ฐ€ ์—†์„ ๋•Œ ๋ฑ€์˜ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•œ ์ฑ„ ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋Š” ์˜์—ญ์œผ๋กœ ํ•œ ์นธ ์ด๋™ ์‹œ์ผœ์ค€๋‹ค.(๊ผฌ๋ฆฌ -1) ๋ฑ€์˜ ๋ชธํ†ต์€ ๋ฑ€์ด ์ด๋™ํ•˜๋Š” ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ.. 2022. 9. 28.