728x90
평균 구하기
문제설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한조건
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr | return |
[1, 2, 3, 4] | 2.5 |
[5, 5] | 5 |
기본코드
class Solution {
public double solution(int[] arr) {
double answer = 0;
return answer;
}
}
문제풀이
먼저 기본 코드에 적혀있는 double...
double 함수가 뭐였더라
구글링해보니 소수점 단위까지 출력 가능한 실수 타입의 변수였다.
float이라는 함수도 있기는 하지만 실수 리터럴 뒤에 f 혹은 F를 꼭 붙어야하고
용량도 double에 비해 작은 4byte(double은 8byte)
여러므로 double을 쓰는게 더 마음 편해 보인다.
double 함수에 대한 이해를 바탕으로 가볍게 문제를 풀려하였으나 마지막 단계에 가서 double 함수를 사용했음에도 불구하고 소수점 단위 값이 출력되지 않았다.
또 검색해보니
double을 사용할 경우 발생할 수 있는 문제로, 초기 사용 변수들의 속성타입을 double이 아닌 int등으로 지정하였다면
소수점 단위 값의 출력이 정상적으로 이뤄지지 않는다는 것이다.
//예시
int a = 10;
int b = 3;
double c = a/b;
System.out.println(c); // 3
double a = 10;
double b = 3;
double c = a/b;
System.out.println(c); // 3.3333333333333335
//문제 해결 방법 - double 함수 사용 단계에서 데이터 변경
//뒤의 함수의 데이터를 변경해도 상관없다.
int a = 10;
int b = 3;
double c = (double)a/b; // == double c = a/(double)b;
System.out.println(c); // 3.3333333333333335
Solution.java
class Solution {
public double solution(int[] arr) {
int sum = 0;
for(int i = 0; i<arr.length; i++) {
sum += arr[i];
}
System.out.println(c);
double answer = (double)sum/arr.length;
return answer;
}
}
728x90
'🤖Algorithm' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 Java (0) | 2022.07.18 |
---|---|
[프로그래머스] 없는 숫자 더하기 Java (0) | 2022.07.16 |
[프로그래머스] 음양 더하기 Java (0) | 2022.07.16 |
[프로그래머스] 문자열을 정수로 바꾸기 Java (0) | 2022.07.16 |
[프로그래머스] 두 정수 사이의 합 Java (0) | 2022.07.15 |