[백준/파이썬] 11057번

민정·2024년 1월 28일
0

[백준/파이썬]

목록 보기
245/245
post-thumbnail

📍백준 11057 문제

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

코드1

import sys
input = sys.stdin.readline

n = int(input())
a = 10
temp1 = 1
temp2 = 1
for i in range(n, 0, -1):
    temp1 = temp1 * a
    temp2 = temp2*i
    a += 1
print((temp1//temp2) % 10007)

풀이1

계산을 해보니 규칙이 있어서 이렇게 풀었더니 답은 맞았다(!?)
정석 풀이는 아니지만, 조합을 이용해서도 가능하다.
길이가 n이라면 10+(10+1)+(10+2)+...+(10+k-1)/k!을 해서 풀어도 맞긴하더라...^_^

코드2

n = int(input())

num = [1]*10

for i in range(n-1):
    for j in range(1, 10):
        num[j] += num[j-1]

print(sum(num)%10007)

풀이2

사실 여기서 중요한 규칙은 현재 숫자보다 작은 값들의 합이다.

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글