[Silver IV] 파스칼 삼각형 - 15489
분류
조합론, 다이나믹 프로그래밍, 수학
문제 설명
파스칼 삼각형은 아래와 같은 모양으로 이루어져 있다. 양 끝을 제외한 각 수는 자신의 바로 왼쪽 위의 수와 바로 오른쪽 위의 수의 합으로 되어있다.
이때 R번째 줄, C번째 수를 위 꼭짓점으로 하는 한 변이 포함하는 수의 개수가 W인 정삼각형과 그 내부를 생각하자. 정삼각형의 변과 그 내부에 있는 수들의 합을 구하고 싶다. 예를 들면, 3번 째 줄, 1번 째 수를 꼭짓점으로 하고 한 변이 포함하는 수의 개수가 4인 정삼각형과 그 내부에 있는 수의 합은 1+(1+3)+(1+4+6)+(1+5+10+10) = 42 이다.
주어진 R, C, W에 대해서 그에 해당하는 합을 구하는 프로그램을 작성하여라.
입력
첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R)
출력
첫째 줄에 R번째 줄, C번째 수를 위 꼭짓점으로 하는 한 변이 포함하는 수의 개수가 W인 정삼각형과 그 내부에 있는 수들의 합을 출력한다.
R, C, W = map(int, input().split())
pascal = [[], [1], [1, 1]]
for i in range(3, R + W):
answer = [1]
for j in range(1, i - 1):
temp = pascal[i - 1][j - 1] + pascal[i - 1][j]
answer.append(temp)
answer.append(1)
pascal.append(answer)
result = 0
k = 1
for r in range(R, R + W):
for c in range(k):
result += pascal[r][C - 1 + c]
k += 1
print(result)
'Algorithm > BAEKJOON' 카테고리의 다른 글
[백준 / Python 파이썬] 15565번 - 귀여운 라이언 (0) | 2023.06.13 |
---|---|
[백준 / Python 파이썬] 2670번 - 연속부분최대곱 (0) | 2023.05.27 |
[백준 / Python 파이썬] 13699번 - 점화식 (0) | 2023.05.27 |
[백준 / Python 파이썬] 25601번 - 자바의 형변환 (0) | 2023.05.19 |
[백준 / Python 파이썬] 2257번 - 화학식량 (0) | 2023.05.19 |