[실전 문제] PROSJEK
2021. 2. 17. 12:04ㆍ코딩 테스트/실전 문제
1. 문제
민건이는 수학 수업시간동안 재밌는 방법으로 수학을 연습하고 있다.
먼저 민건이는 정수 수열 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)
두번째 줄에 수열 B를 구성하는 N개의 요소가 주어진다. Bi (1 <= Bi <= 10^9)
출력
첫째 줄에 수열 A를 이루는 N개의 정수를 출력해라 (1 <= Ai <= 10^9)
NOTE : 수열 A의 요소들은 정수이다.
예제 입력
case 1)
1
2
case 2)
4
3 2 3 5
case 3)
5
1 2 2 3 4
예제 출력
case 1) 2
case 2) 3 1 5 11
case 3) 1 3 2 6 8
2. 풀이
import java.io.*;
import java.util.StringTokenizer;
public class Main {
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n+1];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 1; i <= n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
// 나누기 전 상태
for(int i = n; i >= 1; i--) {
arr[i] = arr[i] * i;
}
// 더하기 전 상태
for(int i = n; i >= 1; i--) {
arr[i] = arr[i] - arr[i-1];
}
for(int i = 1; i <= n; i++) {
bw.write(arr[i] + " ");
}
br.close();
bw.flush();
bw.close();
}
}
728x90
'코딩 테스트 > 실전 문제' 카테고리의 다른 글
[실전 문제] fractionsum (0) | 2021.02.17 |
---|---|
[실전 문제] lcm (0) | 2021.02.17 |
[실전 문제] fibonacci (0) | 2021.02.17 |
[실전 문제] nextnum (0) | 2021.02.17 |