-
23.05.25) 알고리즘 문제) 배열의 평균값 구하기썽이의 개발 일지/TIL 2023. 5. 25. 20:48
🧐문자열 연습하기
function solution(numbers) { var answer = 0; return answer; }
더보기📌 문제설명
정수 배열 numbers가 매개변수로 주어집니다.
numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
📌제한사항
- 0 ≤ numbers의 원소 ≤ 1,000
- 1 ≤ numbers의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
📌입출력 예
numbers result [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5 [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0 📌해결과정
처음에는 먼저 정수 배열들의 값을 다 더하고 난 후에 평균값을 구하면 되는 문제니까
for문을 이용해서 돌아볼까..? 생각했다.
function solution(numbers) { var answer = 0; for(var i = 0; i < numbers.length; i++){ } return answer; }
numbers의 길이만큼 돌면서 값을 더해주면 된다고 생각해서 이렇게 for문을 작성했다.
근데 그 다음 식을 어떻게 써야할지 도무지 감이 안잡혔다. 머릿속에는 각각 더하고 총 값에서 나누면 돼!
이렇게 간단한 식인데 코드를 써서 하려니까 정말 감이 안잡혔다..
answer = answer + numbers[i]
간단하게 생각했을때 결국에 answer는 인덱스의 값들을 다 더하면 된다 생각이 들어서
우선 answer + numbers[i]식으로 값이 다 더해졌는지 console.log로 확인해보니 55,1034값이 잘 나왔다.
여기에 평균값을 구하기 위해 길이만큼 나누면 끝!
function solution(numbers) { var answer = 0; for(var i = 0; i < numbers.length; i++){ answer = answer + numbers[i] / numbers.length } return answer; }
근데 변수를 계속 보다보니 수학적으로 더 간단한 식이 생각이 났다.
정수 배열의 규칙성을 발견해서 등차의 평균일때만 가능한 식으로
처음과 끝의 수만 더 하고 2로 나눠주면 리턴값 그대로 나올것이라 생각이 들었다.
function solution(numbers) { var sum = numbers[0] + numbers[numbers.length -1] return sum / 2 }
순서 0번째값 0과 길이의 마지막 값을 더 해주고 그 값을 2로 나눠주면 이렇게 짧은 식으로도 평균값을 구할 수 있다!!
for문이라도 제대로 익혀보고 싶어서 어제부터 알고리즘 문제풀 때 마다 for문을 일단 이용해보고 있는데
앞으로 계속 문제 풀면서 오늘처럼 다양한 방법으로 도전해봐야겠다.
'썽이의 개발 일지 > TIL' 카테고리의 다른 글
23.05.29) 개인 프로젝트 - 영화 검색 사이트 만들기 1 (0) 2023.05.29 23.05.26)자바스크립트 문법정리2 - 메서드 익히기 (0) 2023.05.26 23.05.24) 문자열 연습하기 문제 (0) 2023.05.24 23.05.23 자바스크립트 일급객체 함수 연습하기 (1) 2023.05.24 23.05.22) 자바스크립트 문법 정리 (0) 2023.05.24