본문 바로가기
알고리즘

[JAVA] 누계 계산

by PEKAH 2021. 12. 5.

시험에서 등급 i를 받은 학생들의 수를 저장하고, 등급 i 이하의 등급을 받은 학생들의 수를 저장하는 문제

- 시험 등급들의 빈도의 배열 FREQ[0 .. n-1]

- 누계 빈도들의 배열 CUME[0 .. n-1]

 

시간복잡도 O(N)

 

알고리즘

ComputeCumulativeSum(FREQ[0 .. n-1])

CUME[0] = FREQ[0]

for (i = 1; i < n; i++) CUME[i] = CUME[i-1] + FREQ[i]

return CUME

 

JAVA

public class ComputeCumulativeSum {
	public static void main(String[] args) {
		int[] FREQ = {1, 0, 7, 5, 4};
		int[] CUME;
		
		CUME = computeCumulativeSum(FREQ);
		
		System.out.println("배열 CUME: ");
		
		for (int i = 0; i < CUME.length; i++) {
			System.out.print(CUME[i] + "\t");
		}
	}
	
	public static int[] computeCumulativeSum(int[] FREQ) {
		int n = FREQ.length;
		int[] CUME = new int[n];
		
		CUME[0] = FREQ[0];
		
		for (int i = 1; i < n; i++) {
			CUME[i] = CUME[i - 1] + FREQ[i];
		}
		
		return CUME;
	}
}

 

 

 

댓글