본문 바로가기

JavaScript 알고리즘 100일 챌린지(제주코딩베이스캠프)

챌린지 5번째

문제

 

 

코드 및 풀이

 

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