Back to : ps-weekly
Contents

Apr 26 - May 09, 2021. ์ด๋ฒˆ ์ฃผ์ฐจ๋Š” 4์›” ๋ง ๊ฒƒ๋“ค๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ์ด์ „ ๋ธ”๋กœ๊ทธ์—์„œ ํ–ˆ์—ˆ๋˜ weekly PS๋ฅผ ๋‹ค์‹œ ์จ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋„ ์š”์ƒˆ ๋„ˆ๋ฌด ๋ชปํ•œ๊ฑฐ ๊ฐ™์•„์„œโ€ฆ ์‹œํ—˜๊ธฐ๊ฐ„ 2์ฃผ์”ฉ์„ ์ œ์™ธํ•˜๊ณ , 5์›”์—๋Š” ์•„๋งˆ 1-4์ฃผ์ฐจ๊นŒ์ง€๋Š” ์žˆ์„ ์˜ˆ์ •์ด๋‹ค.

Google Codejam 2021, Round 1B

1๋ฒˆ Broken clock์˜ small๊ณผ middle, 2๋ฒˆ subtransmutation์˜ small๊ณผ large๋ฅผ ํ’€๊ณ  1101๋“ฑ์œผ๋กœ 1B๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค. ์˜ฌํ•ด๋Š” Round 2์—๋Š” ํฐ ์˜๋ฏธ๋ฅผ ๋‘๊ณ  ์žˆ์ง€ ์•Š๋‹ค (์š”์ƒˆ ์ฝ”๋”ฉ ์—ฐ์Šต์„ ๋„ˆ๋ฌด ๋ชปํ•ด์„œ..)

๋†€๋ผ์šด ๊ตฌํ˜„ ๋‡Œ์ ˆ์ด ์žˆ์„ ์˜ˆ์ •์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ณ ์ž python์œผ๋กœ ๋›ฐ์—ˆ๊ณ , ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Broken clock ๊ตฌํ˜„์— 1์‹œ๊ฐ„ ๋ฐ˜ ์ •๋„๋ฅผ ๋ฐ•๊ณ  9๋ฒˆ์„ ์ œ์ถœํ–ˆ์ง€๋งŒ large๋ฅผ ๋งž์ง€ ๋ชปํ–ˆ๋‹ค๋Š”๊ฑด ์ข€ ์ถฉ๊ฒฉ์ ์ด๋‹ค.

๋ฌธ์ œ ํ’€์ด์— ๋Œ€ํ•ด ๊ฐ„๋žตํžˆ ์–˜๊ธฐํ•˜์ž๋ฉดโ€ฆ

Broken Clock, Small-Middle

Middle๊นŒ์ง€๋Š” ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ์ •์ˆ˜ ์ดˆ ๋งŒํผ์ด๋ผ์„œ 43,200๊ฐ€์ง€๋ฐ–์— ์—†๊ณ , ์ด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ง์ ‘ ํ™•์ธํ•ด๋„ ๋„‰๋„‰ํ•œ ์‹œ๊ฐ„์ด๋‹ค.

์ฝ”๋“œ : ๋งํฌ

Subtransmutation, Full

์™œ ๋ฌธ์ œ ์ˆœ์„œ๊ฐ€ ์ด๋Ÿฐ์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋„‰๋„‰ํžˆ $K$ ํ•œ๊ฐœ๋กœ ์‹œ์ž‘ํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋งค๋ฒˆ ํ™•์ธํ•ด๋„ ์‹œ๊ฐ„์ด ๋„‰๋„‰ํ•˜๊ณ , ์ด๋Š” $K$๋ถ€ํ„ฐ 1๋ฒˆ๊นŒ์ง€ ๊ฑฐ๊พธ๋กœ ์˜ค๋ฉด์„œ Greedyํ•˜๊ฒŒ DP๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ง์ด ์กฐ๊ธˆ ์ด์ƒํ•œ๋ฐ, ๊ผญ ํ•„์š”ํ•œ ๊ฐœ์ˆ˜๋งŒํผ ๋นผ๋†“๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ „๋ถ€ ๋‚˜์ค‘์— ์“ฐ์ผ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์ž‘์€๊ฑธ๋กœ ๋ถ„ํ•ดํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๋‹ค. ๋ง๋ณด๋‹ค ์ฝ”๋“œ๊ฐ€ ํ›จ์”ฌ ์‰ฌ์šด ๋ฌธ์ œ.

์ฝ”๋“œ : ๋งํฌ

Problems

BOJ 20191 ์ค„์ž„๋ง (KOI 2020)

๋‚œ์ด๋„ : Gold 3 (BOJ)

๋ฌธ์ž์—ด S์™€ T๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, T๋ฅผ ๋ช‡ ๋ฒˆ concatํ•ด์•ผ $T^n$ (concat) ์ด $S$๋ฅผ subseqeunce๋กœ ํฌํ•จํ•˜๋Š”์ง€ ๋ฌป๋Š” ๋ฌธ์ œ. S์˜ ๊ฐ ๊ธ€์ž์— ๋Œ€ํ•ด์„œ, ์ด ๊ธ€์ž๊ฐ€ T์˜ ๋ช‡๋ฒˆ์งธ์— ๋Œ€์‘๋  ์ˆ˜ ์žˆ๋Š”์ง€ ๋ฏธ๋ฆฌ ๋ชจ๋‘ ํ™•์ธํ•œ๋‹ค. Greedyํ•˜๊ฒŒ, ๋‚ด ์ด์ „ ๊ธ€์ž๋“ค๋ณด๋‹ค ๋’ค์— ์žˆ๊ธฐ๋งŒ ํ•˜๋‹ค๋ฉด ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜ ์ค‘ ์ตœ๋Œ€ํ•œ ์•ž์— ๋Œ€์‘ํ•ด์•ผ ๋ฌด์กฐ๊ฑด ์ด๋“์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋”์ด์ƒ ๋Œ€์‘ ๊ฐ€๋Šฅํ•œ ์œ„์น˜๊ฐ€ ์—†๋‹ค๋ฉด, ์ƒˆ๋กœ์šด T๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•ด์„œ, ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ์•ž์— ๋Œ€์‘ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์ „์ฒ˜๋ฆฌ $O(S + T)$ ๋ฅผ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ, $S$์˜ ๊ฐ ๊ธ€์ž์— ๋Œ€ํ•ด $\log T$ ์‹œ๊ฐ„์— ์œ„์น˜๋ฅผ ์ฐพ์•„์ค„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ $O(S \log T)$ ์‹œ๊ฐ„์— ํ•ด๊ฒฐ๋œ๋‹ค.

์ฝ”๋“œ : ๋งํฌ

BOJ 3006 ํ„ฐ๋ณด์†ŒํŠธ (COCI 2007)

๋‚œ์ด๋„ : Platinum 4 (BOJ)

์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ์— ๊ฐ element์˜ ์œ„์น˜๋ฅผ ์ €์žฅํ•˜๊ณ , segment tree๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์ด๋‚˜๋ฏนํ•˜๊ฒŒ ๋ญ”๊ฐ€๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์ข‹์€ ์—ฐ์Šต๋ฌธ์ œ์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ํŒŒ์•…ํ•˜๊ณ  ๋‚˜๋ฉด ์–ด๋ ต์ง€ ์•Š๋‹ค. Segtree๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ตฌ๊ฐ„ $(a, b)$ ์˜ 1์˜ ๊ฐœ์ˆ˜ (๋‚จ์•„ ์žˆ๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜) ๋ฅผ ์‰ฝ๊ฒŒ ์…€ ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ : ๋งํฌ