반응형
평균(Average) 알고리즘이란
범위 내에서 조건에 맞는 값들의 평균
을 찾는 알고리즘을 말하는데
설명에서 보다시피 매우 간단한 개념이기 때문에
for 문을 돌려주면서
if문으로 조건에 맞는 값을 찾아
합계와 조건에 맞는 갯수를 각각 구해준 뒤
SUM / COUNT을 해주면 된다
여기서 소수값을 확인하기 위해
double 변수에 값을 담고
double 타입으로 변환해서 나누게 된다
그리고 소수가 길게 뽑혀져 나와 보기가 불편하니
반올림은 Math.round를 사용해주면 되는데
Math.round(answer * 100) / 100.0
이렇게 해주면 소수 둘째 자리에서 반올림을 하니
첫째 자리 / 셋째 자리로 바꾸고 싶다면
0을 줄이거나 늘려주면 된다
다음으로 소수 특정 자리수에서 자르고 싶다면
DecimalFormat 객체명 = new DecimalFormat("포맷");
을 사용해주면 되는데
포맷이 0.00 이면
소수 둘째 자리까지는 없어도 0으로 고정해주고
#.## 으로 해주면 값이 없으면 나오지 않되
값이 지정한 자리수보다 길면
지정한 자리수까지만 노출하고 잘라버리게 된다
마지막으로 예제에 사용한 코드는 아래와 같다
public class AverageExample {
public static void main(String[] args) {
// 평균 알고리즘(Average Algorithm)
// 주어진 범위 내에서 조건에 해당하는 값들의 평균
int[] arr = {10, 20, 34, 55, 70, 90};
int count = 0;
int sum = 0;
// 평균 알고리즘 > SUM / COUNT
for(int i = 0; i<arr.length; i++) {
if(arr[i] >= 0 && arr[i] <= 40) { // 0이상 40이하인 값의 평균
sum += arr[i]; // 합계 구하기
count++; // COUNT(갯수) 구하기
}
}
double answer = sum / (double) count; // 평균 구하기
System.out.println("Answer : " + answer);
DecimalFormat df = new DecimalFormat("#.#"); // 소수점 자리수 처리용
System.out.println("Answer(소수점 자리수 적용) : " + df.format(answer));
}
}
반응형
'Language > 알고리즘 개념정리' 카테고리의 다른 글
자바 근사값(Near) 알고리즘 정리 (0) | 2021.05.29 |
---|---|
자바 최소값(Min) 알고리즘 정리 (0) | 2021.05.29 |
자바 최대값(Max) 알고리즘 정리 (0) | 2021.05.27 |
자바 개수(Count) 알고리즘 정리 (0) | 2021.05.25 |
자바 등차수열 알고리즘 정리 (0) | 2021.05.25 |
댓글