❌ 아직 해결되지 않은 궁금증이 있는 게시물
문제 설명
정수 n이 주어질 때, n이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요.
# 내가 처음 짠 코드
function solution(n) {
var sum = 0;
for( let i = 1; i<=n; i++){
if( i%2 === 0){
sum += i;
}
}return sum;
}
❌ 계속 에러가 났던 이유가 위에 var sum = 0; 으로 초기화를 안 해줘서 인데 정확하게 왜 안해 주면 에러가 나고 해주면 알맞게 시행되는지 궁금.
# 다른 사람들의 번뜩이는 코드 방식(1)
function solution(n) {
var half = Math.floor(n/2);
return half*(half+1);
}
💡와.. 이거를 그냥 수학 공식을 알고 있었던 거네... 쩐다잉
#다른 사람들의 번뜩이는 코드 방식(2)
function solution(n) {
var answer = 0;
for(let i=2 ; i<=n ; i+=2) //여기를 중요하게 체크쓰
answer += i;
return answer;
}
💡와..for문에서 아예 짝수만 돌게 만듬...
#다른 사람들의 번뜩이는 코드 방식(3)
function solution(n) {
return Array(n)
.fill()
.map((_, i) => i + 1)
.filter((v) => v % 2 === 0)
.reduce((acc, cur) => acc + cur, 0);
}
❌아니 슨생님.. 이건 뭐쥬,,,,
✔️사용한 함수
① Math.floor( )
소수점 이하 버리기
② (3) 코드 관련 - .fill () / .map() / .filter ( ) / .reduce( )
✳️참고 링크 :
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 입문] (0) | 2023.04.28 |
---|---|
❌[JS] 배열 평균 값 구하기 : reduce(), for..of문 (0) | 2023.01.14 |
❌ [JS] 각도기 : filter( ) (0) | 2022.12.23 |
[JS] 나이 출력 : Date( ).getFullYear( ) (0) | 2022.12.11 |
[JS] 배열 두 배 만들기 : map() , push (), apply( ) (0) | 2022.12.11 |