알고리즘 문제 "행렬의 덧셈"를 풀어보았습니다.
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
평균을 구하는 방법은 다들 알고있을 것이라고 생각한다.
평균을 구하고자 하는 모든 수를 더한 후 더한 수의 갯수만큼 나누어 주면 된다.
class Solution { public double solution(int[] arr) { double answer = 0; for(int i = 0; i < arr.length; i++){ answer += arr[i]; // answer = answer + arr[i]; 위와 같은 코드 } // 더한 값을 length만큼 나누어준다. return answer / arr.length; } }
answer 에 변수를 double로 선언한 이유는 평균값이 실수가 나올 경우가 있기때문에 int,long 등으로 선언할 경우 오류가 나게 되기 때문이다.
이렇게 짧고 간단한 코드는 다른 방식으로 코드 짜기를 연습하기에 좋은 것 같다. 그렇기에 for문이 아닌 for each문을 이용하여 한번더 만들어 보겠다.
class Solution { public double solution(int[] arr) { double answer = 0; for(double sum : arr){ answer += sum; } return answer / arr.length; } }
for each문을 사용한다면 for문보다 좀더 간결해지고 가독성이 좋아지는 효과가 있다.
적응하기위해서는 자주 써보는게 답인것 같다.
for each문의 사용방법은 아래 와 같으며 배열의 수만큼 for문을 반복하게된다.
for(변수타입 변수명 : 배열이름){ 실행할 내용; }
여담으로 for each문은 java 1.5 버전 이상부터 사용 가능하다.