본문 바로가기
Language/알고리즘 개념정리

자바 평균(Average) 알고리즘 정리

by wakestand 2021. 5. 26.
반응형

평균(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));	
				
	}

}

 

 

 

 

 

 

반응형

댓글