-
[๋ฐฑ์ค] 2302 ๊ทน์ฅ ์ข์ with PythonPS 2022. 3. 31. 04:31728x90๋ฐ์ํ
๐ BOJ 2302 ๊ทน์ฅ ์ข์
๐ก ์กฐ๊ฑด
์ด๋ค ๊ทน์ฅ์ ์ข์์ ํ ์ค๋ก ๋์ด ์์ผ๋ฉฐ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ๋งค๊ฒจ์ ธ ์๋ค.
๊ณต์ฐ์ ๋ณด๋ฌ ์จ ์ฌ๋๋ค์ ์๊ธฐ์ ์ ์ฅ๊ถ์ ํ์๋์ด ์๋ ์ข์์ ์์์ผ ํ๋ค.์๊ธฐ์ ๋ฐ๋ก ์ผ์ชฝ ์ข์ ๋๋ ๋ฐ๋ก ์ค๋ฅธ์ชฝ ์ข์์ผ๋ก๋ ์๋ฆฌ๋ฅผ ์ฎ๊ธธ ์ ์๋ค.
์ด ๊ทน์ฅ์๋ โVIP ํ์โ๋ค์ด ์๋ค. ์ด ์ฌ๋๋ค์ ๋ฐ๋์ ์๊ธฐ ์ข์์๋ง ์์์ผ ํ๋ฉฐ ์ ์ข์์ผ๋ก ์๋ฆฌ๋ฅผ ์ฎ๊ธธ ์ ์๋ค.
์ค๋ ๊ณต์ฐ์ ์ ์ฅ๊ถ์ด ๋งค์ง๋์ด 1๋ฒ ์ข์๋ถํฐ N๋ฒ ์ข์๊น์ง ๋ชจ๋ ์ข์์ด ๋ค ํ๋ ธ๋ค.
VIP ํ์๋ค์ ์ข์ ๋ฒํธ๋ค์ด ์ฃผ์ด์ก์ ๋, ์ฌ๋๋ค์ด ์ข์์ ์๋ ์๋ก ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๊ฐ์ง์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.N์ 1 ์ด์ 40 ์ดํ์ด๋ค. ๋์งธ ์ค์๋ ๊ณ ์ ์์ ๊ฐ์ M์ด ์ ๋ ฅ๋๋ค.
๋ฐฉ๋ฒ์ ๊ฐ์ง์๋ 2,000,000,000์ ๋์ง ์๋๋ค. (2,000,000,000 < 231-1)๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin n, m = int(stdin.readline()), int(stdin.readline()) vip = [] for _ in range(m): vip.append(int(stdin.readline())) arr = [1, 1, 2] for i in range(3, 41): arr.append(arr[i-2] + arr[i-1]) ans = 1 if m > 0: pre = 0 for i in range(m): ans *= arr[vip[i] - 1 - pre] pre = vip[i] ans *= arr[n - pre] else: ans = arr[n] print(ans)
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
9 2 4 7
์คํ๊ฒฐ๊ณผ
12
โจ๏ธ ๋ฌธ์ ํ์ด
m ์ ํฌ๊ธฐ๋ง ํผ ์๋ฅผ ์ ๋ ฅ๋ฐ์ vip ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
n์ ๊ฐ์ ๋ฐ๋ผ ๊ฐ์ง์๋ฅผ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
n = 0 ์ผ ๋๋ ํ๊ฐ์ง๋ก ๋ณธ๋ค.
n = 1 ์ผ ๋๋ 1
n = 2 ์ผ ๋๋ 2
n = 3 ์ผ ๋๋ 3
n = 4 ์ผ ๋๋ 5(2)๋ฒ์ ์ ๋ฆฌํ๋ฉด ํผ๋ณด๋์น ์์ด๊ณผ ๊ฐ๋ค.
์ ํ์์ dp[i] = dp[i-2] + dp[i-1] ์ด ๋๊ฒ ๋ค.arr ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๊ณ ํผ๋ณด๋์น ์์ด์ ๋ง๋ค์ด์ค๋ค.
vip ๊ฐ ์๋ ๊ฒฝ์ฐ, vip๋ ์ ์๋ฆฌ์๋ง ์์ด์ผํ๊ธฐ ๋๋ฌธ์
vip์ ์๋งํผ ์ํํ๋ฉด์ ๊ฐ vip ์๋ฆฌ ์ด์ ๋ฒํธ์์ ์ด์ vip ๋ฒํธ๋ฅผ ๋บ arr์ ๊ฐ๊น์ง์
๊ฒฝ์ฐ์ ์๋ฅผ ๊ณฑํด์ค๋ค.
๐พ ๋๋์
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ์ด ๋๋ฌด ์ด๋ ต๋ค๋ ๊ฒ์ ๋ค์ ํ ๋ฒ ๋๊ผ๋ค.
- ์ ํ์์ ๊ตฌํํ์ง ๋ชปํ๋ ๋ถ๋ถ์์ ๋ฌธ์ ๋ฅผ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ธ๊ฐ๋ฅผ ์๊ฐํ๊ณ ์ฒ์๋ถํฐ ์ฐฌ์ฐฌํ ์ดํด๋ณธ ๋ฌธ์ ์๋ค.
- ์ดํด๋ฅผ ํ ํ, ๋ธ๋ก๊ทธ ํฌ์คํ ์ ํ๋ฉด์ ๋ค์ ๋ณต๊ธฐ๋ฅผ ํ๋ ์ฒ์๋ณด๋ค ์ดํด๊ฐ ์ฌ์ ๋ค.
- (3)๋ฒ์ฒ๋ผ ์ฌ์ด ๋๋์ ๋ฐ์๋ค๊ณ ํ๋, ๋น์ทํ ์ ํ์ ํ ์ ์์๊น? ๋ผ๋ ์ง๋ฌธ์๋ ์์ ์๊ฒ ๋๋ตํ์ง๋ ๋ชปํ๊ฒ ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 12970 AB with Python (0) 2022.05.09 [๋ฐฑ์ค] 11508 2+1 ์ธ์ผ with Python (0) 2022.05.09 [๋ฐฑ์ค] 2012 ๋ฑ์ ๋งค๊ธฐ๊ธฐ with Python (0) 2022.03.31 [๋ฐฑ์ค] 1343 ํด๋ฆฌ์ค๋ฏธ๋ ธ with Python (0) 2022.03.29 [๋ฐฑ์ค] 1145 ์ ์ด๋ ๋๋ถ๋ถ์ ๋ฐฐ์ with Python (0) 2022.03.29