yoonix

[프로그래머스 코딩테스트 입문 Lv.0] 7의 개수 JavaScript 풀이 본문

코딩테스트

[프로그래머스 코딩테스트 입문 Lv.0] 7의 개수 JavaScript 풀이

yoonix 2023. 5. 4. 22:35
프로그래머스 > 코딩테스트 입문 > 잘라서 배열로 저장하기

문제 설명

🔹 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

제한사항

🔹 1 ≤ array의 길이 ≤ 100
🔹 0 ≤ array의 원소 ≤ 100,000

문제 풀기 전 생각

🔹 7이 들어간 걸 어떻게 셀까? > 정규식 공부했으니까 이걸로 풀어봐야겠다.
🔹 배열을 문자열로 만들어서 정규식 검사해야지

function solution(array) {
    var answer = 0;
    var str = '';
    for(var i=0; i<array.length; i++){
        str += array[i];
    }
    if(str.match(/7/g)!=null){
        answer = str.match(/7/g).length;    
    }

    return answer;
}

처음에 든 생각은 며칠전에 공부한 정규식 검사로 7을 찾아내는 것이었다.
그래서 배열을 문자열로 만들고 (이때는 spilt 사용할 줄 몰라서 ... 냅다 += 포문으로 더해버림..😔😔)
원하는 대로 정규식 검사를 통해 7이 들어가는 문자열을 구했지만 다른사람 풀이를 보고 배울게 한참 남았구나 싶었다.

function solution(array) { // ex) array : [7, 77, 17]
    console.log(array.join('')) //77717
    console.log(array.join('').split('7')) //[ '', '', '', '1', '' ]
    console.log(array.join('').split('7').length-1)	//4
    
    return array.join('').split('7').length-1;
}

맨 밑에 있는 코드 한줄로 해결할 수 있다는 것을 알고 어이가 없기도, 배울게 많아 재밌다는 생각도 들었다ㅎㅎ
천천히 한줄한줄 찍어보니 이제서야 코드가 이해가 잘 된다.
잘 풀었다는 생각이 들어도 새로 배운게 생기고 나면 다시 풀어봐야겠다.