https://programmers.co.kr/learn/courses/30/lessons/12944
나의 풀이
class Solution {
public double solution(int[] arr) {
double answer = 0;
for(int i=0;i<arr.length;i++){
answer += arr[i];
}
answer = answer / arr.length;
return answer;
}
}
- arr 배열에 길이만큼 반복문을 돌려서,answer에 arr[i]의 값들을 누적했다.
- answer에는 누적된 값 (=총합)이 있고 그걸 arr.length(=배열의 크기)로 나눴다.
다른 방법으로도 풀어보자!
class Solution {
public double solution(int[] arr) {
double answer = 0;
for(int i:arr){
answer += i;
}
return answer = answer / arr.length;
}
}
- for문 -> for each문으로 변경
- 배열의 처음부터 마지막까지 반복문으로 돌릴거니까, for each문을 사용하면 더 간결해질 것 같다.
for each문의 구조
for (type var : iterate) { body-of-loop }
iterate는 반복의 대상 객체 (여기서는 arr)이 순차적으로 var에 대입되어 for문을 수행한다.
iterate부분에 들어가는 타입은 배열 및 ArrayList등이 가능하다.
- return 문의 변경
- 기존의 코드는 구한 평균값을 다시 answer 변수에 담고, answer를 return했는데, return문에 곧바로 answer의 평균값을 담아서 보내는 것이 효율적일 것 같다!
👏 배운점
- for each문을 사용할 수 있는 상황에서는 적극적으로 이용해보자. 보기 좋은 코드가 실행하기도 좋으니까!
- for each문을 오랜만에 복습했다.
- 성공하더라도 다른 풀이 방법 찾아보고 더 효율적으로 짤 수 있는 코드가 있는지 확인하자
728x90
'📓 Study > Coding Test' 카테고리의 다른 글
[Algorithm Jobs] 약수 구하기 오답 노트 (0) | 2021.11.04 |
---|---|
[Programmers/JAVA] 자연수 뒤집어 배열로 만들기 (0) | 2021.10.25 |
[Programmers/JAVA] 핸드폰 번호 가리기 (0) | 2021.09.23 |
[Programmers/JAVA] 직사각형 별찍기 (0) | 2021.09.22 |
[Programmers/JAVA] 짝수와 홀수 (0) | 2021.09.21 |
댓글