-
[๋ฐฑ์ค] 9657 ๋ ๊ฒ์ 3 with PythonPS 2023. 4. 4. 17:46728x90๋ฐ์ํ
๐ BOJ 9657 ๋ ๊ฒ์ 3
๐ก ์กฐ๊ฑด
- ํ์ ์์ ๋ N๊ฐ๊ฐ ์๋ค. ์๊ทผ์ด์ ์ฐฝ์์ด๋ ํด์ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ๋์ ๊ฐ์ ธ๊ฐ๋ฉฐ, ๋์ 1๊ฐ, 3๊ฐ ๋๋ 4๊ฐ ๊ฐ์ ธ๊ฐ ์ ์๋ค.
- ๋ง์ง๋ง ๋์ ๊ฐ์ ธ๊ฐ๋ ์ฌ๋์ด ๊ฒ์์ ์ด๊ธฐ๊ฒ ๋๋ค.
- ๋ ์ฌ๋์ด ์๋ฒฝํ๊ฒ ๊ฒ์์ ํ์ ๋, ์ด๊ธฐ๋ ์ฌ๋์ ๊ตฌํ๋ ๋ฌธ์ .
- ๊ฒ์์ ์๊ทผ์ด๊ฐ ๋จผ์ ์์ํ๋ค.
- ์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 1000)
์๊ทผ์ด๊ฐ ๊ฒ์์ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์์ด๊ฐ ๊ฒ์์ ์ด๊ธฐ๋ฉด CY์ ์ถ๋ ฅํ๋ค. - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ ์ ํ์ ๋ฌธ์
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์ 1
6
์คํ๊ฒฐ๊ณผ 1
SK
โจ๏ธ ๋ฌธ์ ํ์ด
์๊ทผ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก DP ๋ฐฐ์ด์ ๊ตฌ์ฑํ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด, ์ด๋ป๊ฒํ๋ฉด ์๊ทผ์ด๊ฐ ์ด๊ธธ ์ ์์์ง์ ๋ํด์ ์๊ฐํด๋ณด๋ฉด ์ข๋ค.
"์๋ฒฝํ๊ฒ ๊ฒ์์ ํ๋ค" ๋ผ๋ ๊ตฌ์ ์ ํตํด์ ์ด๋ป๊ฒ๋ ์๊ทผ์ด๊ฐ ์ด๊ธธ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด,
DP ๋ฐฐ์ด์์ ๊ทธ ๊ฐ์๋ ์๊ทผ์ด๊ฐ ์ด๊ธฐ๋ ํ์ผ๋ก ๊ธฐ๋ก์ ํด๋๋๊ฒ์ด ์ณ๋ค.๋ฌธ์ ์์ ๋์ ๋ค๊ฐ๊น์ง ๊ฐ์ ธ ๊ฐ ์ ์์ผ๋ dp[4]๊น์ง ์ง์ ๊ณ์ฐํ๋ฉฐ ์ดํด๋ณด์.
๋์ด 1๊ฐ์ผ ๋, ์๊ทผ์ด๋ 1๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์์ผ๋ฉฐ ์ด๊ธฐ๊ฒ ๋๋ค. -> 1
๋์ด 2๊ฐ์ผ ๋, ์๊ทผ์ด๋ 1๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์์ผ๋ฉฐ ์ง๊ฒ ๋๋ค. -> 0
๋์ด 3๊ฐ์ผ ๋, ์๊ทผ์ด๋ 1, 3๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์์ผ๋ฉฐ, ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ด๊ธธ์ ์๋ค. -> 1
๋์ด 4๊ฐ์ผ ๋, ์๊ทผ์ด๋ 1, 3, 4๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ ์ ์์ผ๋ฉฐ, 4๊ฐ๋ฅผ ๊ฐ์ ธ๊ฐ๋ฉด ์ด๊ธธ ์ ์๋ค. -> 1(2)๋ฒ๊ณผ ๊ฐ์ด ๊ณ์ฐํ์ ๋, DP ๋ฆฌ์คํธ๋ ์๋์ ๊ฐ์ด ๊ตฌ์ฑ๋๋ค.
0 ~ 4๊น์ง ๊ณ์ฐํ ๊ฒฐ๊ณผ + ์ ๋ ฅ๋ฐ์ n - 4๊ฐ์ 0์ผ๋ก ์ด๊ธฐํํ ๋ฆฌ์คํธ
dp = [0, 1, 0, 1, 1] + [0] * (n - 4)
dp[๊ฐ์ ธ๊ฐ ๋์ ๊ฐ์]๋ก ๋ณด๋ฉด 1 ํน์ 0์ ๊ฐ์ด ์๋ค.
1์ ๊ฐ์ผ ๋๋ฅผ ์ดํด๋ณด๋ฉด ์๊ทผ์ด๊ฐ ๋จผ์ ์์์ ํ์ ๋ ์ด๊ธธ ์ ์๊ณ , ๊ทธ๊ฒ ์๋๋ผ๋ฉด ์ง๋ค.
๋ฐ๋๋ก 0์ ๊ฐ์ผ ๋๋ ๋ฌด์กฐ๊ฑด ์ด๊ธธ ์ ์๋ค.(4)๋ฒ์์ ์์๋ณธ ๊ฒ์ ํ ๋๋ก ๋ณด๋ฉด, ๋ ํ๊ฐ, ์ธ๊ฐ, ๋ค๊ฐ ๊ฐ์ ธ๊ฐ์ ๋์ dp๊ฐ์ 0์ด ์๋ค๋ฉด ๋ฌด์กฐ๊ฑด ์๊ทผ์ด๊ฐ ์ด๊ธด๋ค๋ ๊ฒ์ด๋ค.
๋ฐ๋ณต๋ฌธ์ ํตํด์ n๋ฒ ์งธ ๋ฆฌ์คํธ๊น์ง ๊ณ์ฐํ์ฌ ๊ฐ์ ์ ํ ๋ค, dp[n] ์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๐ฅ ์์ค ์ฝ๋
from sys import stdin n = int(stdin.readline()) arr = [0, 1, 0, 1, 1] + [0] * (n - 4) for i in range(5, n + 1): if 0 in [arr[i - 1], arr[i - 4], arr[i - 3]]: arr[i] = 1 else: arr[i] = 0 print('SK' if arr[n] else 'CY')
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1072 ๊ฒ์ with Python (0) 2023.04.07 [๋ฐฑ์ค] 9658 ๋ ๊ฒ์ 4 with Python (0) 2023.04.07 [๋ฐฑ์ค] 9656 ๋ ๊ฒ์2 with Python (0) 2023.04.04 [๋ฐฑ์ค] 9655 ๋ ๊ฒ์ with Python (0) 2023.04.04 [๋ฐฑ์ค] 3943 ํค์ผ์คํค์์ด with Python (0) 2023.04.04