<문제 제시>
정수 배열 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
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] '피자 나눠 먹기 (2)' - Java (0) | 2022.12.20 |
---|---|
[프로그래머스] '피자 나눠 먹기 (1)' - Java (0) | 2022.12.19 |
[프로그래머스] '두 수의 나눗셈' - Java (0) | 2022.12.18 |
[프로그래머스] '종이 자르기' - Java (0) | 2022.12.18 |
[프로그래머스] '배열 자르기' - Java (0) | 2022.12.17 |