코딩 도장 LV2, 8의 개수 구하기

장성우·2023년 7월 5일

문제풀이

목록 보기
1/9

문제 링크
https://codingdojang.com/scode/393?answer_mode=hide

1부터 10,000까지 8이라는 숫자가 총 몇번 나오는가?
8이 포함되어 있는 숫자의 갯수를 카운팅 하는 것이 아니라 8이라는 숫자를 모두 카운팅 해야 한다.
(※ 예를들어 8808은 3, 8888은 4로 카운팅 해야 함)

  1. 정규표현식 이용해서 풀기(내가 푼 방식)
let arr = Array(10000).fill(0).map((el, idx) => idx + 1)
let cnt = 0
for(let i = 1; i <= arr.length; i++) {
	i += ''
    let eightArr = i.match(/[8]/g)
    if(eightArr === null) continue
    else cnt += eightArr.length
}
console.log(cnt)
// 4000
  1. filter 이용해서 풀기(다른 사람이 푼 방식)
const res = Array(10000)
				.fill(0)
                .map((el, idx) => idx + 1)
                .toString()
                .split('')
                .filter(el => el === '8')
                .length
                
console.log(res)      
// 4000

풀이 링크
https://www.youtube.com/watch?v=oIuOhhff3Fk&list=PLkfUwwo13dlWZxOdbvMhkzhAowaiEjuGS&index=37

profile
HiHeLlo!1

0개의 댓글