카테고리 없음

[python][백준/BOJ] 2721번 : 삼각수의 합

haju 2023. 9. 16. 22:24

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

 

2721번: 삼각수의 합

n번째 삼각수, T(n)은 1부터 n까지의 합이다. T(n) = 1 + ... + n. 이것은 삼각형 모양으로 표현할 수 있다. 아래 그림은 T(4)를 나타낸 것이다. 다음과 같은 식을 통해 가중치를 부여한 삼각수의 합을 구

www.acmicpc.net

 

문제풀이

  • W(n)을 구하려면 T(n)의 값을 먼저 알고 있어야한다. 
  • 따라서 n의 값을 (여기선 w로 받았음) 입력받고 1의 합은 1이므로 t리스트에 첫 값은 1로 정해주었다. 
  • 2부터 w+1의 T(n)의 값을 계산해서 t리스트에 저장해주었다. 
  • 그리고 다시 반복문을 돌면서 K*T(K+1)의 값을 sum에 저장해준다. 
  • 이때 코드에서는 K*T(K)로 설정해주었는데 실질적으로 1*T(2)값부터 저장하는데 T(2)는 T리스트에서 1번째이기 때문에 +1을 생략하였다. (T(1)은 인덱스 0, T(2)는 인덱스 1 !)
import sys

t=int(sys.stdin.readline())

for i in range(t):
    w=int(sys.stdin.readline())
    t=[1]
    for j in range(2,w+2):
        t.append(t[j-2]+j)
    sum=0
    for k in range(1,w+1):
        sum+=k*t[k]
    print(sum)