문제
코드 및 풀이
n이 주어졌을때의 n만큼 Array를 만들고 짝수 개만 골라서 더 해주면 된다.
Array를 채우는 방법은 여러가지가 있다.
1. Array(100) => 비어있는 100개가 채워짐
2. '0'.repeat(100).split('') => repeat으로 100개를 채우고 split해서 사용하는 경우
Array(100) => 100에 n이 들어간다고 보고
fill()로 채워 줄거다. => () 괄호 안에 0을 넣거나 아무것도 넣지 않으면 undefined로 채워진다.
Array(100).fill()
=> 여기서 map을 사용할건데 Array(100).fill().map(())
사용하지않는 변수는 언더바(_)를 넣는다.
map에는 value와 index가 들어간다.
map((value, index))
value를 사용하지 않을꺼기 때문에 언더바(_)를 넣어준다.
이렇게 들어왔을때에
Array(100).fill().map((_, i) => i)라고 해주게 되면 0부터 시작한다. 하지만, 우리는 1부터 시작할 필요가 있기 때문에 i+1로
Array(100).fill().map((_, i) => i+1)로 바꿔주면 된다. = 1부터 100까지 생성
여기서 이제 짝수만 골라내주면 되기때문에 filter를 사용한다.
Array(100).fill().map((_, i) => i+1).filter(v => v % 2 === 0)
value가 들어왔을때 value % 2가 0이라면 뽑아내라
filter(v => v % 2 === 0)
Array(100).fill().map((_, i) => i+1).filter(v => v % 2 === 0)
이렇게 해서 짝수를 다 골라 냈으면 이제 다 더하기만 하면된다.
Array(100).fill().map((_, i) => i+1).filter(v => v % 2 === 0).reduce((a, c) => a + c, 0)
이제 이 식을 return에 넣어놓고 100을 n으로 수정해주면 된다.
0보다 크다고 되어있어서 1이 들어가게 되면 문제가 생긴다.
=> 비어있는 값에서 reduce를 사용했으니깐 TypeError가 발생한다.
초기값을 주면, Error가 발생하지 않는다.
'JavaScript 알고리즘 100일 챌린지(제주코딩베이스캠프)' 카테고리의 다른 글
챌린지 7번째 (0) | 2024.12.03 |
---|---|
챌린지 6번째 (0) | 2024.12.01 |
챌린지 4번째 (0) | 2024.12.01 |
챌린지 3번째 도전 (0) | 2024.11.29 |
챌린지 2번째 도전 (0) | 2024.11.29 |