정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
제한사항0 < n ≤ 1000
입출력 예nresult10 | 30 |
4 | 6 |
입출력 예 #1
- n이 10이므로 2 + 4 + 6 + 8 + 10 = 30을 return 합니다.
입출력 예 #2
- n이 4이므로 2 + 4 = 6을 return 합니다.
나의 풀이
function solution(n) {
var answer = 0;
for(var i=0; i<=n; i+=2){
answer += i;
}
return answer;
}
다른 사람의 풀이
01. 메소드 체이닝
function solution(n) {
return Array(n)
.fill() //공백으로 채운 Array n을 생성
.map((_, idx) => idx + 1) //보통 value를 넣지만 사용하지않기에 _로 대체, 시작 숫자를 1로 시작
.filter((v) => v % 2 === 0) //배열에서 짝수에 해당하는 값만 뽑기
.reduce((acc, cur) => acc + cur, 0); //짝수들 누적 합산
}
return Array(n).fill().map((_, index) => index + 1).filter(v => v % 2 === 0).reduce((a , c) => a + c, 0);
02.
function solution(n) {
var half = Math.floor(n/2);
return half*(half+1);
}
접근을 다양하게 하는 사람들이 많구나
난 너무 단순하게 생각하는듯 공부 열심히 해야지
728x90
'Dev. > Algorithm Prac' 카테고리의 다른 글
[프로그래머스] - js 각도기 (0) | 2023.06.27 |
---|---|
[프로그래머스] js 자연수 뒤집어 배열로 만들기 (0) | 2023.06.25 |
[프로그래머스] js - 문자열 내 p와 y의 개수 (0) | 2023.05.14 |
프로그래머스 접미사 배열 JS (0) | 2023.04.21 |
프로그래머스 Javascript Lv.0 옹알이(1) (0) | 2023.04.02 |
댓글