๐Ÿ—๏ธ Algorithm/๐ŸŸฉ ๋ฐฑ์ค€

๐ŸŸฉ [๋ฐฑ์ค€] [Python] [Silver1] 11057๋ฒˆ_์˜ค๋ฅด๋ง‰ ์ˆ˜

Dbswnstjd 2023. 5. 2. 16:40

๋ฌธ์ œ

https://www.acmicpc.net/problem/11057

 

11057๋ฒˆ: ์˜ค๋ฅด๋ง‰ ์ˆ˜

์˜ค๋ฅด๋ง‰ ์ˆ˜๋Š” ์ˆ˜์˜ ์ž๋ฆฌ๊ฐ€ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ์ด๋ฃจ๋Š” ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. ์ด๋•Œ, ์ธ์ ‘ํ•œ ์ˆ˜๊ฐ€ ๊ฐ™์•„๋„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์นœ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2234์™€ 3678, 11119๋Š” ์˜ค๋ฅด๋ง‰ ์ˆ˜์ด์ง€๋งŒ, 2232, 3676, 91111์€ ์˜ค๋ฅด๋ง‰ ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค. ์ˆ˜

www.acmicpc.net

ํ’€์ด

# ๋ฐฑ์ค€ 11057๋ฒˆ ๋ฌธ์ œ - ์˜ค๋ฅด๋ง‰ ์ˆ˜
n = int(input())
dp = [1]*10
for i in range(1,n) :
    for j in range(1,10) :
        dp[j] += dp[j-1]

print(sum(dp)%10007)

DP ๋ฌธ์ œ์ด๋‹ค. 

i ์ž๋ฆฌ ์ˆ˜ \ j 0์œผ๋กœ ๋๋‚˜๋Š” ์ˆซ์ž 1 2 3 4 5
n = 1 1 1 1 1 1 1
n = 2 1 2 3 4 5 6
n = 3 1 3 6 10 15 21

 

์œ„์™€ ๊ฐ™์€ ํ‘œ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ ํ™”์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด 

dp[j] = dp[j] + dp[j-1]

์ด๋ ‡๊ฒŒ ๋œ๋‹ค.