ํ•˜๋ฃจ์ฝ”๋”ฉ 5

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ ์ตœ๋‹จ๊ฑฐ๋ฆฌ - ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ฑ… [Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์ž๋ฐ” ํŽธ;๊น€์ข…๊ด€ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ถœ๋ฐœ ๋…ธ๋“œ์™€ ๋ชจ๋“  ๋…ธ๋“œ ๊ฐ„์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํƒ์ƒ‰ (์ถœ๋ฐœ ๋…ธ๋“œ์™€ ๋„์ฐฉ ๋…ธ๋“œ, ๋‘ ๋…ธ๋“œ๋งŒ์ด ์•„๋‹˜)์—์ง€(๊ฐ€์ค‘์น˜)๋Š” ๋ชจ๋‘ ์–‘์ˆ˜์—ฌ์•ผ ํ•œ๋‹ค์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(E * logV)๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜- ์ ‘๊ทผ ๋ฐฉ๋ฒ•๊ทธ๋ž˜ํ”„๋ฅผ ์ธ์ ‘ ํ–‰๋ ฌ, ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์—์„œ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋” ๋น ๋ฆ„, ํ•˜์ง€๋งŒ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง- ์ธ์ ‘ ํ–‰๋ ฌ O(V^2) - ๋ฐ€์ง‘ ๊ทธ๋ž˜ํ”„์— ์œ ๋ฆฌ, ์—ฐ๊ฒฐ ๋…ธ๋“œ ํ™•์ธํ•˜๋Š” ๋ฐ O(1)- ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ O(E * log V) - ํฌ์†Œ ๊ทธ๋ž˜ํ”„์— ์œ ๋ฆฌ, ์—ฐ๊ฒฐ ๋…ธ๋“œ ํ™•์ธํ•˜๋Š” ๋ฐ O(์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์˜ ์ˆ˜)์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์„ ์ดˆ๊ธฐํ™” (์ตœ๋Œ“๊ฐ’์œผ๋กœ ๋ชจ๋‘ ์ฑ„์šฐ๊ธฐ)๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์— ์ถœ๋ฐœ ๋…ธ๋“œ ์ธ๋ฑ์Šค์— 0..

[์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ํ™•์žฅ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ• ์ ‘๊ทผ ๋ฐฉ๋ฒ•

์ฑ… [Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์ž๋ฐ” ํŽธ;๊น€์ข…๊ด€ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ์ด ๊ธ€์€ ์ฆ๋ช…๋ณด๋‹ค๋Š” ๋ฐฉ์ •์‹์˜ ํ•ด๋ฅผ ๊ตฌํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š”์ง€ ์„ค๋ช…ํ•œ๋‹ค.์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์ด ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ผ๊ณ  ๋ณด๋ฉด, ํ™•์žฅ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ๋ฐฉ์ •์‹์˜ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ํ™•์žฅ ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•์€ ๊ธฐ๋ณธ ํ˜ธ์ œ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ์ง„ํ–‰๋œ๋‹คax + by = c์ฃผ์–ด์ง„ a, b, c, x, y๋Š” ๋ชจ๋‘ ์ •์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด๋•Œ x, y์˜ ํ•ด๋Š” c % gcd(a,b) = 0 ์กฐ๊ฑด์ด ์„ฑ๋ฆฝ๋˜์–ด์•ผ ์ •์ˆ˜ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์— ์ ‘๊ทผํ•  ๋•Œ ๋จผ์ € c์˜ ๊ฐ’์ด gcd(a,b)์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ๋ถ€ํ„ฐ ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐฐ์ˆ˜๊ฐ€ ๋งž๋‹ค๋ฉด ์ผ์ฐจ ์กฐ๊ฑด์€ ๋งŒ์กฑํ•œ ๊ฒƒ์ด๋‹ค. c๊ฐ€ g..

[์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์˜ค์ผ๋Ÿฌ ํ”ผ

์ฑ… [Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์ž๋ฐ” ํŽธ;๊น€์ข…๊ด€ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ์˜ค์ผ๋Ÿฌ ํ”ผ ํ•จ์ˆ˜ P[N]์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์— ์ž์ฃผ ๋‚˜์˜ค์ง€๋Š” ์•Š์œผ๋‚˜ ์•Œ๊ณ  ์žˆ์–ด์•ผ ๋ณด์ž„1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒ”์œ„์—์„œ N๊ณผ ์„œ๋กœ์†Œ์ธ ์ž์—ฐ์ˆ˜์˜ ๊ฐœ์ˆ˜์›๋ฆฌ๋Š” ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค('๋ฐฐ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค'๋Š” ์›๋ฆฌ)์™€ ๋น„์Šท๋‹ค๋ฅธ ์ ์€ ํ˜„์žฌ ๋ฐฐ์—ด์˜ ๊ฐ’์ด ์†Œ์ˆ˜์ผ ๋•Œ, ๊ทธ ๋ฐฐ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ P[i] = P[i] - (P[i] / K) ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ๊ฒƒ(K๋Š” ํ˜„์žฌ ์„ ํƒ๋œ ์ˆ˜, i๋Š” K์˜ ๋ฐฐ์ˆ˜)์ด ๊ณผ์ •์€ N์—์„œ ํ•ด๋‹น ์†Œ์ธ์ˆ˜ K์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋‚จ์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜์˜ํ•œ๋‹ค์‹ค์ œ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” N๊นŒ์ง€๋ฅผ ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š”๋ฐ, 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์„œ๋กœ์†Œ ๊ฐœ์ˆ˜๋ฅผ result ๋ณ€์ˆ˜๋กœ ์ƒ๊ฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— N์„ ๋„ฃ๊ณ  K๋ฅผ 2๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด N..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ณ‘ํ•ฉ ์ •๋ ฌ(MergeSort) ํ•ต์‹ฌ ์•„์ด๋””์–ด

์ฑ… [Do it! ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ - ์ž๋ฐ” ํŽธ;๊น€์ข…๊ด€ ์ง€์Œ]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  ๋ถ„ํ•  ์ •๋ณต(divide and conquer) ๋ฐฉ์‹: ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  ๋ถ„ํ• ํ•œ ์ง‘ํ•ฉ์„ ์ •๋ ฌํ•˜๋ฉฐ ํ•ฉ์น˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ฐ€์žฅ ์ž‘์€ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ(ํฌ๊ธฐ 1)์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ 2๊ฐœ์˜ ๊ทธ๋ฃน์„ ํ•ฉ์น˜๋ฉด์„œ ์ •๋ ฌ2๊ฐœ์˜ ๊ทธ๋ฃน์„ ํ•ฉ์น  ๋•Œ๋Š” ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‘˜ ์ค‘ ๋” ์ž‘์€ ์ˆ˜๋ฅผ ๊ฒฐ๊ณผ ๋ฐฐ์—ด์— ๋จผ์ € ์ €์žฅ๊ทธ๋Ÿฐ ๋‹ค์Œ ํฌ์ธํ„ฐ๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๋Š”๋ฐ, ์–ด๋Š ํ•œ ํฌ์ธํ„ฐ๊ฐ€ ๋ฐฐ์—ด์˜ ๋์— ๋จผ์ € ๋„๋‹ฌํ•˜๋ฉด ๋‚˜๋จธ์ง€ ๋ฐฐ์—ด์˜ ๊ฐ’๋“ค๋„ ์˜ฎ๊ฒจ ๋ถ™์ž„   ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ํ‰๊ท  O(nlogN)- ํฌ๊ฒŒ ๋ณด๋ฉด row ํ•˜๋‚˜ ๋‹น n๋ฒˆ์˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ- ๋ณ‘ํ•ฉ ๊ณผ์ •์—์„œ logN๋ฒˆ๋งŒํผ ์ •๋ ฌ๋ฒ„๋ธ” ์ •๋ ฌ(swap)๊ณผ ์—ฐ๊ด€์ง€์€ ํ•ต์‹ฌ ์•„์ด๋””์–ด- ๋ฒ„๋ธ” ์ •๋ ฌ์—์„œ๋Š” swap์ด ๋ช‡ ๋ฒˆ ์ผ์–ด๋‚ ๊นŒ- ์ฒซ์งธ ์ค„์—์„œ 5..

[์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ๊ตฌ๊ฐ„ ํ•ฉ, ์กฐํ•ฉ

๋ชจํŒ์„ ๋งŒ๋“ค์–ด์„œ ํ‘ธ๋Š” ๋ฌธ์ œ๊ฐ€ ๋งŽ์ด ๋‚˜์˜จ๋‹ค.๊ตฌ๊ฐ„ํ•ฉ์„ ๋ฏธ๋ฆฌ ๋‹ค ๊ตฌํ•ด๋†“์€ ํ•ฉ ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. https://www.acmicpc.net/problem/1292  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class BOJ1292_ans { public static void main(String[] args) throws IOException { int[] t = new int[1001]; // 0, 1, 2, 2, 3, 3, 3 ... int idx = 1; for (..