[매일코딩-프로그래머스] 평균 구하기 01

2021. 11. 12. 10:43WEB Dev/CordingTEST

728x90

 

 

오늘은 금요일이라 가벼운 마음으로 가벼운 문제를 풀어봤다.

 

평균 구하기라는 문제고 arr로 선언된 배열 내부의 값의 평균값을 추출하면 된다.

 

평균 구하는건 손으로 써서 외웠었다. 반복문을 너무 못해서 구구단이랑 이런걸 손으로 써서 외웠다.

그래서인지 방식은 잘 알겠는데 기본 반복문 말고 색다른 것을 써보고 싶어 for in 문과 for of 문을 써보기로 했다.

 

처음에는 for in 문으로 작성했다.

우선 배열의 값들을 더할 sum이라는 변수를 선언하고, 그 변수 안에 arr 배열의 요소들을 한 번 씩 다 더해준 다음

더한 값을 arr의 길이(갯수)로 나눠주면 되는 일이라 뭐가 되었건 어제 본 for문 중 하나를 쓰면 될거라고 생각했다.

호기롭게 쓰긴 썼는데 코드가 실행이 안되네?

 

그래서 콘솔에다가 for in 문 작성한 것을 써봤다.

 

var arr = [1, 2, 3, 4]
var sum = 0;
var v;

for(v in arr){
    sum += v;
}

했더니 sum의 값이 '00123' 이라고 나왔다?

그럼 for in 문은 대체 뭘 v에 담아주는 걸까?

값이 00123 으로 나오려면 v가 인덱스가 되어야 한다. 그리고 문자처리 되어야 한다.

1+2+3+4 가 아니라 [0]+[1]+[2]+[3] 이라서 결과가 00123이 되는 것 같은데?

 

for in 문이 뭔지도 모르고 쓰다니 무식하고 용감하다.

 

 

그래서 for of 문으로 바꿨다.

 

var arr = [1, 2, 3, 4]
var sum = 0;
var v;

for(v of arr){
    sum += v;
}

그랬더니 이제서야 sum의 값이 '10'이 나왔다.

 

이 sum을 arr.length로 나눠주면 최종 값을 구할 수 있다.

 

function solution(arr) {
    var sum = 0;
    var v;
     for(v of arr){
        sum += v;
    }
    
    var answer = sum / arr.length;
    return answer;
}

 

엄청 단순한 문제지만 for in 문과 for of 문의 차이점에 대해 공부를 해야함을 느끼는 ... 문제였다.

 

 

728x90