๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 9655๋ฒˆ : ๋Œ ๊ฒŒ์ž„ (Python/๊ตฌํ˜„, DP/Silver 5)

devCloud 2024. 3. 10. 22:25
728x90
 

9655๋ฒˆ: ๋Œ ๊ฒŒ์ž„

์ƒ๊ทผ์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์˜์ด๊ฐ€ ๊ฒŒ์ž„์„ ์ด๊ธฐ๋ฉด CY์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net


์„ค๋ช…

๋Œ N๊ฐœ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ๋‘ ์‚ฌ๋žŒ(์ƒ๊ทผ์ด์™€ ์ฐฝ์˜)์ด ํ„ด์„ ๋Œ์•„๊ฐ€๋ฉด์„œ ๋Œ์„ ๊ฐ€์ ธ๊ฐ„๋‹ค.
๋Œ์„ 1๊ฐœ ๋˜๋Š” 3๊ฐœ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ณ , ๋งˆ์ง€๋ง‰ ๋Œ์„ ๊ฐ€์ ธ๊ฐ€๋Š” ์‚ฌ๋žŒ์ด ๊ฒŒ์ž„์„ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค. (๋ฒ ์Šคํ‚จ ๋ผ๋นˆ์Šค ์ƒ๊ฐ๋‚˜๋„ค?)
๊ฒŒ์ž„์€ ์ƒ๊ทผ์ด๊ฐ€ ๋จผ์ € ์‹œ์ž‘ํ•˜๋ฉฐ ๋‘ ์‚ฌ๋žŒ์ด ์™„๋ฒฝํ•˜๊ฒŒ ๊ฒŒ์ž„์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ์ด๊ธฐ๋Š” ์‚ฌ๋žŒ์„ ์ถœ๋ ฅํ•œ๋‹ค.

ํ’€์ด

1. ๊ฐ„๋‹จํ•œ ํ’€์ด

๋Œ์ด ์ง์ˆ˜์ผ ๊ฒฝ์šฐ ์ฐฝ์˜์ด๊ฐ€ ๋ฌด์กฐ๊ฑด ์ด๊ธฐ๋Š” ๊ฒŒ์ž„์ด ๋˜๊ณ , ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ ์ƒ๊ทผ์ด๊ฐ€ ๋ฌด์กฐ๊ฑด ์ด๊ธฐ๋Š” ๊ฒŒ์ž„์ด ๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์ง์ˆ˜์ผ ๋•Œ์™€ ํ™€์ˆ˜์ผ ๋•Œ๋ฅผ ๋‚˜๋ˆ„์–ด ํ‘ผ๋‹ค.

 

2. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ์šฉ

๋‹ค๋ฅธ ํ’€์ด ์ฐธ์กฐ(์ถ”ํ›„์— ์žฌํ’€์ด ํ›„ ์„ค๋ช… ์˜ˆ์ •)

Solution

1. ๊ฐ„๋‹จ ํ’€์ด

import sys
input = sys.stdin.readline

n = int(input()) #๋Œ ๊ฐœ์ˆ˜

if n % 2 == 0: #์ง์ˆ˜
    print('CY')
else: #ํ™€์ˆ˜
    print('SK')

 

2. DP ํ’€์ด

import sys
input = sys.stdin.readline

n = int(input()) #๋Œ ๊ฐœ์ˆ˜

dp = [0]*1001
dp[1], dp[2], dp[3] = 'SK', 'CY', 'SK'

for i in range(4, n+1):
    if dp[i-1] == 'CY' or dp[i-3] == 'CY':
        dp[i] = 'SK'
    else:
        dp[i] = 'CY'
        
if dp[n] == 'SK':
    print('SK')
else:
    print('CY')

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

์ฒ˜์Œ์— ํ’€์ด๋ฒ•์ด ๋„์ €ํžˆ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•„์„œ ๊ผผ์ˆ˜๋ฅผ ๋ถ€๋ ธ๋‹ค. ํ™€์ˆ˜์™€ ์ง์ˆ˜๋กœ ๋‚˜๋ˆ ์„œ ๊ณ„์‚ฐํ•ด๋ณด๋‹ˆ ํ•„์Šน๋ฒ•์ด ์žˆ์—ˆ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ซ๊ณ  ๋ฐ”๋กœ ํ’€์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฌธ์ œ๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์‚ฌ์‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€๊ธฐ ์ „์— 'dp๋กœ ํ’€์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์€๋ฐ..'๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ์ง€๋งŒ dp์— ์•„์ง ์ต์ˆ™ํ•ด์ง€์ง€ ์•Š์•„์„œ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐธ์กฐํ–ˆ๋‹ค. ใ…œใ…œ

dp ๋ฌธ์ œ ์ค‘์—์„œ๋„ ์‰ฌ์šด ํŽธ์— ์†ํ•˜์ง€๋งŒ ์•„์ง ๋‚œ... ๋งŽ์ด ํ’€๊ณ ๋‚˜์„œ ๋‹ค์‹œ ํ’€์–ด๋ด์•ผ๊ฒ ๋‹ค๊ณ  ๋‹ค์ง.

728x90