uju's Tech

[Baekjoon] 수빈이와 수열 : 10539 본문

Baekjoon

[Baekjoon] 수빈이와 수열 : 10539

ujusy 2020. 7. 18. 15:35

<본 포스팅은공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>

수빈이와 수열 : 10539


문제

수빈이는 심심해서 수열을 가지고 놀고 있다. 먼저, 정수 수열 A를 쓴다. 그리고 그 아래에 정수 수열 A의 해당 항까지의 평균값을 그 항으로 하는 정수 수열 B를 쓴다.

예를 들어, 수열 A가 1, 3, 2, 6, 8이라면, 수열 B는 1/1, (1+3)/2, (1+3+2)/3, (1+3+2+6)/4, (1+3+2+6+8)/5, 즉, 1, 2, 2, 3, 4가 된다.

수열 B가 주어질 때, 수빈이의 규칙에 따른 수열 A는 뭘까?

입력

첫째 줄에는 수열 B의 길이만큼 정수 N(1 ≤ N ≤ 100)이 주어지고, 둘째 줄에는 수열 Bi를 이루는 N개의 정수가 주어진다. (1 ≤ Bi ≤ 109)

출력

첫째 줄에는 수열 A를 이루는 N개의 정수를 출력한다. (1 ≤ Ai ≤ 109)

Think

역연산을 해주면 될 것 같다.

지금 이 문제에서 요구하는 것은 1,2,2,3,4 가 주어졌을 때 수열 A을 어떻게 구하냐인데 리스트를 이용하면서 누적합을 계산해 주면 될것 같다.

구현

import sys
N = int(sys.stdin.readline())
listB = list(map(int, sys.stdin.readline().split()))
listA = []
sum = 0
tmp = 0
for i in range(len(listB)):
    if i == 0:
        sum = listB[0]
        listA.append(listB[0])
    else:
        tmp = listB[i] * (i+1) - sum
        listA.append(tmp)
        sum = sum + tmp
print(" ".join(map(str, listA)))

'Baekjoon' 카테고리의 다른 글

[Baekjoon] 수 찾기: 1920  (0) 2020.07.18
[Baekjoon] 보너스 점수 : 17389  (0) 2020.07.18
[Baekjoon] The candy war : 9037  (0) 2020.07.18
[Baekjoon]맥주 99명 : 17293  (0) 2020.07.18
[Baekjoon] 백준 문제풀이 작성 소개  (0) 2020.07.18
Comments