๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜ 7

[backjoon] 10217 KCM Travel (python)

10217 KCM Travel Link ๋ฌธ์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” 1 -> N ๊นŒ์ง€ ๊ฐ€๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ณ , ๊ฑฐ๊ธฐ์— ์ถ”๊ฐ€๋กœ M์› ์ดํ•˜๋กœ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ๋ณ€์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋กœ ์กด์žฌํ•œ๋‹ค. ์ง€๋‚œ๋ฒˆ ํ’€์—ˆ๋˜ 1162 ๋„๋กœ ํฌ์žฅ ๊ณผ ๊ต‰์žฅํžˆ ์œ ์‚ฌํ•œ ๋ฌธ์ œ ์ ‘๊ทผ edge๊ฐ€ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋‘ ์–‘์ˆ˜์ด๊ณ , ์ตœ๋‹จ ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ ์ด์Šค๋กœ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์“ธ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ dp ๋ฐฐ์—ด์„ 2์ฐจ์›์œผ๋กœ ๋งŒ๋“ค์–ด์„œ cost๋„ ๊ณ ๋ คํ•ด์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ dp[i][j] = 1 -> i ๊นŒ์ง€ j ์›์„ ์จ์„œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ์‹œ๊ฐ„ ์„ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋œ๋‹ค. ์ฒ˜์Œ์—๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ํ•˜๋˜๋Œ€๋กœ min heap์„ ์จ์„œ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค. ์™œ์ผ๊นŒ... heap์—์„œ ๊บผ๋ƒˆ์„ ๋•Œ ์ตœ์†Œ๊ฐ’์ธ์ง€๋„ ํ™•์ธ ํ•ด์คฌ๊ณ , cost ๊ฐ’ ์ด์ƒ..

[baekjoon] 1162 ๋„๋กœํฌ์žฅ

1162 ๋„๋กœํฌ์žฅ Link ๋ฌธ์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ๊ทธ๋ž˜ํ”„ ์ƒ์—์„œ 1๋ฒˆ -> N๋ฒˆ ๋…ธ๋“œ๊นŒ์ง€ ์ด๋™ํ•˜๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ฑฐ๊ธฐ์— K๊ฐœ์˜ ๋„๋กœ๋ฅผ ํฌ์žฅํ•ด์„œ ์†Œ์š”์‹œ๊ฐ„์„ 0์œผ๋กœ ๋งŒ๋“ค์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ์ถ”๊ฐ€ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค. ์ ‘๊ทผ ๊ฐ€์ค‘์น˜๋Š” ์‹œ๊ฐ„ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ์–‘์ˆ˜์ด๊ณ  ๊ธฐ๋ณธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์ต์ŠคํŠธ๋ผ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ฑฐ๊ธฐ์— ๊ณ ๋ คํ•ด์•ผํ•  ์ ์€ K๊ฐœ์˜ edge์˜ weight๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค ๋ผ๋Š” ๊ฒƒ. ๊ทธ๋ฆฌ๊ณ  ๊ผญ K๊ฐœ๋ฅผ ์ฑ„์›Œ์„œ ํฌ์žฅํ•  ํ•„์š”๋Š” ์—†๋‹ค. ์ž์ฃผ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ ์œ ํ˜•์ธ๋ฐ, ๋‹ค์ต์ŠคํŠธ๋ผ๋„ DP ๊ธฐ๋ฐ˜์ด๋‹ˆ๊นŒ 2์ฐจ์› DP๋ฅผ ์“ฐ๋ฉด ๋œ๋‹ค. 2์ฐจ์› DP ๋ฐฐ์—ด์—์„œ row๋Š” node ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ , column์€ ํฌ์žฅํ•œ ๋„๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด์„œ ์ตœ์ข…์ ์œผ๋กœ dp[i][j] ๋Š” 1 -> i ๋ฒˆ ๋…ธ๋“œ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ ๋„๋กœ ํฌ์žฅ์„ j๋ฒˆ ..

[baekjoon] 2243 ์‚ฌํƒ• ์ƒ์ž (cpp)

2243 ์‚ฌํƒ• ์ƒ์ž link ๋ฌธ์ œ ํ’€์ด ๋ฌธ์ œ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ๋ฐฐ์—ด์— ์‚ฌํƒ•์ด ๋“ค์–ด์žˆ๊ณ , ์‚ฌํƒ•์˜ ๋ง›์€ ์ˆซ์ž๋กœ ํ‘œํ˜„๋œ๋‹ค. (์ตœ๋Œ€ 2,000,000,000๊ฐœ) A๊ฐ€ 1์ธ query๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋ฐฐ์—ด์—์„œ B๋ฒˆ์งธ๋กœ ๋ง›์žˆ๋Š” (B๋ฒˆ์งธ๋กœ ์ž‘์€) ์‚ฌํƒ•์„ ๊บผ๋‚ด์ค€๋‹ค. (์ถœ๋ ฅํ•œ๋‹ค) ์‚ฌํƒ•์˜ ๋ง›์€ 1 ~ 1,000,000 ์ด๋ฏ€๋กœ ๋ฐฑ๋งŒ๊ฐœ ๊ธธ์ด์˜ ๋ฐฐ์—ด์„ ๋‘๊ณ  ๊ฐ Index์— ๊ทธ ๋ง›์„ ๊ฐ€์ง„ ์‚ฌํƒ•์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ ํ›„์— ์‚ฌํƒ•์„ ๊บผ๋‚ด๋ ค๋ฉด ์•ž์—์„œ๋ถ€ํ„ฐ B๋ฒˆ์งธ ์‚ฌํƒ•์˜ ๋ง›์„ ์ฐพ์•„ ๋– ๋‚˜์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด query๊ฐ€ ์ตœ๋Œ€ 100,000, ๋ฐฐ์—ด ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 1,000,000์ด๋‹ˆ๊นŒ... ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ๊ณ  ๋” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผํ•œ๋‹ค. ์กฐ๊ธˆ๋งŒ ์ƒ๊ฐ์„ ๋ฐ”๊ฟ”๋ณด์ž. ์•ž์—์„œ๋ถ€ํ„ฐ B๋ฒˆ์งธ ์‚ฌํƒ•์„ ์ฐพ๋Š”๋‹ค = ๋‚ฎ์€ ์ˆซ์ž๋ถ€ํ„ฐ ์‚ฌํƒ•์ด ๋ช‡๊ฐœ์”ฉ ์žˆ๋‚˜ ๋ˆ„์ ํ•ฉ์„..

[baekjoon] 11003 ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ (python)

11003 ์ตœ์†Ÿ๊ฐ’ ์ฐพ๊ธฐ Link ๋ฌธ์ œ ๊ธธ์ด๊ฐ€ L์ธ ๊ตฌ๊ฐ„์—์„œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š” ๋ฌธ์ œ ๋ฌธ์ œ ์ ‘๊ทผ ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ ์ผ๋‹จ ์ฒ˜์Œ์—๋Š” ๊ธธ์ด L ๊ตฌ๊ฐ„์—์„œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค. ์ˆ˜์—ด A์—์„œ i๋ฒˆ์งธ ์ˆซ์ž๋ฅผ ํŠธ๋ฆฌ์—์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š”๋ฐ logN, ์—…๋ฐ์ดํŠธ ํ›„ ๊ตฌ๊ฐ„์—์„œ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ์— logN์œผ๋กœ O(NlogN) ์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง„๋‹ค. # input N, L = map(int, input().split()) arr = [0] arr.extend(list(map(int, input().split()))) MAXN = 5000000 tree = [0 for _ in range(MAXN * 2 + 1)] inf = 1000000000 def query(node, s, e, l, ..

[baekjoon] 1806 ๋ถ€๋ถ„ํ•ฉ (python)

1806 ๋ถ€๋ถ„ํ•ฉ ๋ฌธ์ œ ์ˆ˜์—ด์—์„œ ์—ฐ์†๋œ ์ˆ˜๋“ค์˜ ๋ถ€๋ถ„ํ•ฉ ์ค‘์—์„œ ํ•ฉ์ด S์ด์ƒ ์ด๊ณ  ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๊ตฌ๊ฐ„ ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์•ผํ•œ๋‹ค. ์ ‘๊ทผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ดค์„ ๋•Œ, ์ˆ˜์—ด์˜ ๋ชจ๋“  ์›์†Œ๋“ค์— ๋Œ€ํ•ด์„œ ํ•ด๋‹น ์›์†Œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๊ตฌ๊ฐ„์„ ํƒ์ƒ‰ํ•ด๋ณด๋ฉด ๊ฐ€๋Šฅํ•˜๊ธด ํ•˜๋‹ค. ๋ฌผ๋ก  ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด O(N^2)๋กœ ํƒ€์ž„์•„์›ƒ์ด ๋‚  ๊ฒƒ์ด๋‹ค. (0.5์ดˆ์˜ ์‹œ๊ฐ„ ์ œํ•œ..) ์–ด๋–ค ๊ตฌ๊ฐ„์˜ ํ•ฉ ์ด๋ผ๊ณ  ํ•˜๋ฉด ๋จผ์ € ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ๊ฐ€ ๋– ์˜ค๋ฅด๊ธด ํ•˜์ง€๋งŒ, ๋ชจ๋“  ๊ตฌ๊ฐ„์„ ๋ช…์‹œํ•ด์ค˜์•ผํ•˜๋ฏ€๋กœ ์ด ๋ฌธ์ œ์™€๋Š” ๋งž์ง€ ์•Š๋Š”๋‹ค. (์˜คํžˆ๋ ค O(N^2 logn) ์ผ ๊ฒƒ ๊ฐ™์€๋ฐ?) ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ํˆฌํฌ์ธํ„ฐ ๋ฐฉ์‹์œผ๋กœ O(N) ์•ˆ์— ํƒ์ƒ‰์„ ๋๋‚ผ ์ˆ˜ ์žˆ๋‹ค. code N, S = map(int, input().split()) seq = list(map(int, input().split())) s ..

[baekjoon] 2580 ์Šค๋„์ฟ  (python)

๋ฌธ์ œ 9 x 9 2์ฐจ์› ๋ฐฐ์—ด์ด ์ฃผ์–ด์ง€๋ฉด ์Šค๋„์ฟ  ๊ทœ์น™์— ์˜๊ฑฐํ•ด์„œ ๋นˆ์นธ์— ์ˆซ์ž๋ฅผ ์ฑ„์šฐ๋ฉด ๋œ๋‹ค. ์ ‘๊ทผ๋ฒ• ๊ฐ€๋กœ, ์„ธ๋กœ, 9์นธ ๊ตฌ์—ญ์— ๊ฐ™์€ ์ˆซ์ž๊ฐ€ ์—†๋Š”์ง€ ํŒ๋‹จํ•˜๊ณ , ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋„ฃ๊ณ  ๋‹ค์Œ ๋นˆ์นธ์œผ๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๋‹ค์Œ ๋นˆ์นธ์—์„œ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉด ์›๋ž˜ ๋นˆ์นธ์œผ๋กœ ๋„˜์–ด์™€์„œ ๋‹ค๋ฅธ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด๋ณธ๋‹ค (๋ฐฑํŠธ๋ž˜ํ‚น) pypy๋กœ ํ•˜๋ฉด ํ†ต๊ณผํ•˜๋Š”๋ฐ python3๋กœ ์ œ์ถœํ•˜๋ฉด ๊ณ„์† ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค. ์ฒ˜์Œ์—” ๋นˆ์นธ๋“ค์„ deque๋กœ ๊ด€๋ฆฌํ•ด์„œ ๊ทธ๋ƒฅ ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๊ณ , 1~9 ์ˆซ์ž๋ฅผ ๋„ฃ์„ ๋•Œ๋งˆ๋‹ค ์ค‘๋ณต์ฒดํฌ ํ•ด์ฃผ๋˜ ๋กœ์ง์„ ๋”ฐ๋กœ ๋นผ์„œ, ๊ฐ€๋Šฅํ•œ ์ˆซ์ž๋“ค๋งŒ ๊ฐ€์ง€๊ณ  ํŠธ๋ž˜ํ‚น์„ ํ•ด๋ด๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ํ•„์š”ํ•œ ๋กœ์ง ๊ฐ™์€๋ฐ.. cpp๋กœ ํ•˜๋ฉด ๋˜๋ ค๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ๋ฅผ ์žก๋Š” ๊ฒƒ ๋ณด๋‹ค ๋‹ค๋ฅธ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š”๊ฒŒ ์ƒ์‚ฐ์ ์ผ ๊ฒƒ ๊ฐ™์•„ ์ผ๋‹จ์€ ๋„˜์–ด๊ฐ„๋‹ค. Code # input board =..

[baekjoon] 15686 ์น˜ํ‚จ ๋ฐฐ๋‹ฌ (python3)

๋ฌธ์ œ ์ง‘-์น˜ํ‚จ์ง‘์˜ ๊ฑฐ๋ฆฌ๋Š” ๋งจํ•˜ํƒ„ ๊ฑฐ๋ฆฌ๋กœ ๊ตฌํ•œ๋‹ค. ( |x1 - y1| + |x2 - y2| ) ์–ด๋–ค ์ง‘์˜ ์น˜ํ‚จ ๊ฑฐ๋ฆฌ๋Š” ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์น˜ํ‚จ์ง‘๊ณผ์˜ ๊ฑฐ๋ฆฌ์ด๊ณ , ๋ชจ๋“  ์ง‘๋“ค์˜ ์น˜ํ‚จ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์ด ๋„์‹œ์˜ ์น˜ํ‚จ๊ฑฐ๋ฆฌ์ด๋‹ค. ์ด ๋•Œ ๋„์‹œ์˜ ์น˜ํ‚จ๊ฑฐ๋ฆฌ๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ์น˜ํ‚จ ์ง‘์„ m๊ฐœ ๊ณจ๋ผ์•ผํ•œ๋‹ค. ์ ‘๊ทผ๋ฒ• 1