시험에서 등급 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;
}
}
'알고리즘' 카테고리의 다른 글
[JAVA] 삽입 정렬(Insertion Sort) (0) | 2021.12.07 |
---|---|
[JAVA] 선택 정렬(Selection Sort) (0) | 2021.12.06 |
[JAVA] 이진 탐색 (Binary Search) (0) | 2021.12.06 |
[JAVA] 자연수 n의 계승(factorial) 계산 (4) | 2021.12.06 |
[JAVA] 최댓값 찾기 (순차탐색) (0) | 2021.12.05 |
댓글