반응형
[프로그래머스] Java 코딩테스트 연습 - 배열의 평균값
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/120817
문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
풀이
잘못된 풀이
class Solution {
public double solution(int[] numbers) {
double answer = 0;
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
answer = (double) (sum / numbers.length);
return answer;
}
}
double형으로 형변환하기 위해 (double) (sum / numbers.length) 와 같이 입력했는데 소수 부분이 잘려서 출력됐다. 이유를 찾아보니 이렇게 입력하면 num / numbers.length가 먼저 계산되고 그 결과가 int로 변환된 후에 double로 변환되어 소수 부분이 잘린다고 한다.
소스코드
class Solution {
public double solution(int[] numbers) {
double answer = 0;
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
answer = (double) sum / numbers.length;
return answer;
}
}
반응형
'코딩테스트연습 > [프로그래머스] Java' 카테고리의 다른 글
[프로그래머스] Java 코딩테스트 연습 - 피자 나눠 먹기 (3) (0) | 2023.07.22 |
---|---|
[프로그래머스] Java 코딩테스트 연습 - 숨어있는 숫자의 덧셈 (2) (0) | 2023.07.22 |
[프로그래머스] Java 코딩테스트 연습 - 옷가게 할인 받기 (0) | 2023.07.20 |
[프로그래머스] Java 코딩테스트 연습 - 아이스 아메리카노 (0) | 2023.07.20 |
[프로그래머스] Java 코딩테스트 연습 - 나이 출력 (0) | 2023.07.20 |