백준 13900번: 순서쌍의 곱의 합

최창효·2022년 7월 24일
0
post-thumbnail

문제 설명

접근법

  • 그림으로 그려보면 이해하기 편합니다.
    • 전체 합 = (A)B+(A+B)C+(A+B+C)D+(A+B+C+D)E+(A+B+C+D+E)F(A)*B + (A+B)*C + (A+B+C)*D + (A+B+C+D)*E + (A+B+C+D+E)*F
      • 누적합을 활용할 수 있습니다.

정답

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine());
		Long[] num = new Long[N + 1];
		Long[] cumSum = new Long[N + 1];
		num[0] = 0L;
		cumSum[0] = 0L;
		for (int i = 1; i <= N; i++) {
			num[i] = Long.parseLong(st.nextToken());
			cumSum[i] = num[i] + cumSum[i - 1];
		}
		Long sumVal = 0L;
		for (int i = 2; i <= N; i++) {
			sumVal += num[i] * cumSum[i-1];
		}
		System.out.println(sumVal);

	}
}
profile
기록하고 정리하는 걸 좋아하는 개발자.

0개의 댓글