Algorithms/프로그래머스

[프로그래머스] '배열의 평균값' - Java

LEFT 2022. 12. 19. 12:17

<문제 제시>

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

<예시 입출력>


<문제 해결 과정>

배열의 원소를 for반복문을 통해 모두 더하고 그 배열의 길이로 나눠 평균값을 구하면 되는 간단한 문제였다.

이 문제를 풀때 입력받는 방식에서 차별점을 두고 싶었다.

프로그래머스의 자체 입력방식이 아닌, BufferedReader 와 StringTokenizer를 사용해보았다.

hasMoreTokens로 사용자로부터 입력된 원소들을 마무리 짓는다.


<전체코드>

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// #. 배열의 평균 = 동적으로 입력받아 처리하기
// @@**@@ = BufferedReader, StringTokenizer 사용

/* <문제설명>
정수를 담고 있는 배열 arr의 평균값을
return하는 함수, solution을 완성해보세요.
*/

public class ave_array {
	
	public static double solution(int[] numbers) {
        double answer = 0;
        
        double sum = 0;
        for(int i = 0; i < numbers.length; i++){
            sum += numbers[i];
        }
        
        answer = sum / numbers.length;
        
        return answer;
    }
	
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		String temp = br.readLine();
		
		
		int[] numbers = new int[10];
		
		st = new StringTokenizer(temp, " ");

		int i = 0;
		while(st.hasMoreTokens()) {
			numbers[i] = Integer.parseInt(st.nextToken());
			i++;
		}
		
		System.out.println(solution(numbers));
	}
}

직접 배열의 원소를 입력받아 처리해보았다. main 함수에서 많은 로직을 처리한 후에야 solution 함수에 배열을 

전달해 처리할 수 있었다.


문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120817

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr