본문 바로가기
기초다지기/JS 코딩테스트

[Lv0] js 정수 배열에서 숫자 n이 총 몇 개 들어있는지

by 김빵그 2023. 8. 18.

 

문제

정수배열 array가 주어질 때 숫자 n이 몇 번 들어갔냐 

내해답

function solution(array) {
    var answer = 0;
    for(let i = 0; i< array.length; i++) {
        answer += array[i].toString()
    }
    return answer.includes(7) ? answer.split("").filter((i) => i==7).length : 0 ;
    
}
  • for 루프를 사용하여 배열의 요소를 문자열로 변환후 answer에 더해줌
  • includes(7) : answer에 7이 포함되어있는지 확인 
  • filter : 7이 포함되어 있다면 각 자릿수를 배열 분할 배열 길이를 반환 아니면 0을 반환

다른 답들

1) join / split

function solution(array) {
    return array.join('').split('7').length-1;
}
  • join : 정수 배열의 요소들을 하나의 문자열로 이어 붙임
  • split(7) :  7을 구분자로 사용하여 분리한 배열을 만든다
  • length - 1 : 위의 배열의 길이에서 1을 뺀다 7이 등장한 횟수 1을 뺀 이유는 분리된 문자열 사이에 숫자 7이 존재하지 않는 경우에도 배열의 길이가 1이 늘어나기 때문

2) join / split / filter

function solution(array) {
    return(array.join().split("").filter((el)=>{return el=="7"}).length)
}
  • 위의 코드와 비슷하지만 filter를 사용해 7이랑 일치하는 필터링 작업을 수행한다

 


오전의 코딩테스트는 원래 이런 건가... 싶다 생각이란걸 안하고 짠 코드라 정리하기 부끄럽고 좀 더 머리를 쓰자!!