BOJ ๋ฌธ์ œ ๋ณด๊ธฐ

์•„์ง ์—ด์‹ฌํžˆ ๋ฐฐ์šฐ๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค!๐Ÿฃโ˜˜๏ธ
๊ฐœ์„ ์  ์•ˆ๋‚ด ํ˜น์€ ์ž˜๋ชป๋œ ๋ถ€๋ถ„ ์ง€์ , ์งˆ๋ฌธ ๋ชจ๋‘ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์กฐ์–ธ์€ ๋ถ€์กฑํ•œ ์ง€์‹์„ ๋ณด์™„ํ•˜๋Š”๋ฐ ์ •๋ง ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.๐Ÿฅฐ


1. ๋ฌธ์ œ

image


๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ฌธ์ œ๋‹ค. ๋ฐ”ํ…€์—… ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.



2. ํ•ด๊ฒฐ ๊ณผ์ •

N=30์ผ ๋•Œ, /3, /2, -1์„ ์ด์šฉํ•ด 1์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์—ฐ์‚ฐ์„ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋‘ ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•ด๋ณด์ž.

image

30์„ ์–ด๋Š ์ˆœ์„œ์— ์–ด๋–ค ์ œ์ˆ˜๋กœ ๋‚˜๋ˆ„๋Š๋ƒ์— ๋”ฐ๋ผ ์ด ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.


๋ฐฐ์—ด d๋ฅผ ๋งŒ๋“ค์–ด ์—ฐ์‚ฐ์˜ ์ตœ์†Œ ํšŸ์ˆ˜๋ฅผ ํ”ผ์ œ์ˆ˜๋งˆ๋‹ค ์ €์žฅํ•˜๊ณ , ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค i๊ฐ€ ์—ฐ์‚ฐ์˜ ํ”ผ์ œ์ˆ˜๋ผ๊ณ  ํ•˜์ž(d[(ํ”ผ์ œ์ˆ˜)]). ์œ„ ์˜ˆ์ œ๋กœ ํ•˜๋ฉด d[30]=4๊ฐ€ ๋˜๊ฒ ๋‹ค. d[0]๊ณผ d[1]์€ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฏธ๋ฆฌ 0์œผ๋กœ ์ง€์ •ํ•ด๋‘๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ํ™œ์šฉํ•ด 2๋ถ€ํ„ฐ N๊นŒ์ง€ ์—ฐ์‚ฐํ•œ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ์ฐจ๋ก€๋กœ ๋Œ€์ž…ํ•œ๋‹ค. N๋งˆ๋‹ค ๋‚˜๋ˆ„๋Š” ์ˆ˜์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์–ด ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋น„๊ตํ•ด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

์šฐ์„  i์—์„œ 1์„ ๋บ€ ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•˜์ž. 1์„ ๋นผ๋ฉด ์—ฐ์‚ฐ ํšŸ์ˆ˜๋Š” ํ•œ ๋ฒˆ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ d[i-1]์— 1์„ ๋”ํ•ด์ค€ ๊ฐ’์ด i์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋œ๋‹ค(d[i]). algorithm ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด i๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๊ฐ’๊ณผ 3์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’ ์ค‘ ๋” ์ž‘์€ ์ˆ˜๋ฅผ ๋น„๊ตํ•œ๋‹ค.


๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ i-1๋ฒˆ์งธ ์ธ๋ฑ์Šค๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ’์ด ๋“ค์–ด์žˆ์œผ๋ฉด i๋ฅผ ์—ฐ์‚ฐํ•œ ๊ฐ’(i-1, i/2, i/3)์— ๋Œ€ํ•œ ์—ฐ์‚ฐ ํšŸ์ˆ˜(d[i(์—ฐ์‚ฐ)])๋ฅผ ๋ฐ”๋กœ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ์ผ์ผํžˆ ๋‹ค์Œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  ํ•œ ๋ฒˆ์”ฉ๋งŒ ๊ฒฐ๊ณผ๋ฅผ ๊ฐฑ์‹ ํ•˜๋ฏ€๋กœ(DP ํŠน์ง•!) ์ด ์ˆ˜ํ–‰ ์‹œ๊ฐ„์€ O(N)์ด ๋œ๋‹ค.



3. ์ฝ”๋“œ

image



4. ์ƒ๊ฐ ์ •๋ฆฌ

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ก ์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์ „ ์„ธ ์ˆ˜์˜ ์—ฐ์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์˜ˆ์ธกํ•ด ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ ๋‚˜๋ˆ„์–ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด n์ด 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€๋งŒ 4๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š์œผ๋ฉด์„œ (n-1)์ด 3์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด 1์„ ๋จผ์ € ๋นผ๊ณ  ๋‹ค์Œ ๋ฐ˜๋ณต๋ฌธ์—์„œ n%3==0 ์กฐ๊ฑด๋ฌธ์— ๊ฑธ๋ฆฌ๊ฒŒ ํ•˜๊ธฐ ๊ฐ™์€ โ€ฆใ…Žใ…Ž ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์งˆ ๋ฟ๋”๋Ÿฌ ๋‚ด๊ฐ€ ์„ธ์šด ์กฐ๊ฑด๋ฌธ์ด ๋ชจ๋“  n์— ๋Œ€ํ•ด ์ด๋“์ด๋ผ๋Š” ๋ณด์žฅ๋„ ์—†๋‹ค. ์ œ์‹œ๋œ ์ž…๋ ฅ๋งˆ๋‹ค ์ผ€์ด์Šค๊ฐ€ ์œ ๋™์ ์œผ๋กœ ๋ฐ”๋€Œ๋Š” ๋ฌธ์ œ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ์ „๋ถ€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์ž. ์•ž์œผ๋กœ ๋ช…ํ™•ํžˆ ์ฆ๋ช…ํ•  ์ˆ˜ ์—†๋Š” ๊ฐ€์ •์œผ๋กœ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ธ์šฐ๊ธฐ ๋ง๊ธฐ! ๋” ๊ณ ๋ฏผํ•ด๋ณด๋ฉด ํ™•์‹คํ•œ ๋‹ต์•ˆ์ด ๋‚˜์˜ฌ ๊ฑฐ๋‹ค.

DP๋Š” ์•„์ง ์‹ค๋ฒ„ ๋ช‡ ๋ฌธ์ œ๋งŒ ํ’€์–ด๋ณด์•˜์ง€๋งŒ, ์‰ฌ์šด ๋ฌธ์ œ๋Š” ๊ทœ์น™์„ ์ฐพ์•„ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋ฐฐ์—ด์— ๋„ฃ์œผ๋ฉด ์–ผ์ถ” ํ’€๋ฆฌ๋Š” ๋“ฏํ•˜๋‹ค. ๊ทœ์น™ ์ฐพ๊ธฐ๊ฐ€ ๊ฐ์ด ์ž˜ ์•ˆ ์˜จ๋‹ค. ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ํ’€์–ด๋ณด๊ณ  ์ ํ™”์‹ ์„ธ์šฐ๋Š” ๊ฐ์„ ์žก์•„์•ผ ํ•˜๊ฒ ๋‹ค.


+)

๋ฐ˜๋ก€๋ฅผ ์ฐพ์œผ๋Ÿฌ ์งˆ๋ฌธ๊ฒŒ์‹œํŒ์„ ๋Œ์•„๋‹ค๋‹ˆ๋‹ค๊ฐ€ ๊ทœ์น™์„ ์ฐพ๋Š” ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์ตœ์ ์˜ ๋ฐฉ๋ฒ•์„ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ฐพ์•„๋‚ด๊ฒŒ ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. n/3, n/2, n-1 ์ค‘ ์ตœ์ ์ธ ๊ฒƒ์„ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณ ๋ฅด๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ผ๋Š” ๋‹ต๋ณ€์„ ๋ดค๋‹ค! DP ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฌด์ž‘์ • ๊ทœ์น™๊ณผ ๊ฒฝ์šฐ์˜ ์ˆ˜๋งŒ ์ฐพ์œผ๋ ค๊ณ  ํ•ด ๋งŽ์ด ํ—ค๋งจ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฒˆ์ฃผ์— DP ์ด๋ก ์€ ๊ผญ ๋‹ค์žก์•„๋ณด์ž.๐Ÿค“

Leave a comment