일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- 프로그래머스
- 보안
- gcp ci/cd
- node.js
- kotest
- hackctf
- docker
- 파이썬
- 리버싱
- webhacking.kr
- sequelize
- 네트워크
- gcp cloud build
- programmers
- cloud run
- pwnable.xyz
- 웹보안
- 회고
- 사이버보안
- 시스템 해킹
- Batch
- 스프링 배치
- 웹해킹
- gcp
- 포너블
- nodejs
- Python
- spring Batch
- Baekjoon
Archives
uju's Tech
[Baekjoon] 수빈이와 수열 : 10539 본문
<본 포스팅은공부목적으로 작성되었습니다. 혹시 틀린 부분이 있거나 문제가 되는 부분이 있다면 답글 달아주세요!>
수빈이와 수열 : 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