⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 369게임 | JS

하나둘세현 2024. 8. 15. 02:01
728x90

문제

머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.

해결 과정

function solution(order) {
    var answer = 0;
    let count=0;
    let number =  order.toString().replace(/\B(?=(\d{1})+(?!\d))/g, ',');
    for(let i = 0; i < number.length; i++) {
        if(number[i] == 3 || number[i] == 6 || number[i] == 9) {
           count++;
        }
    }
             return count; 
    
}

 

이 문제를 처음보고 아! 숫자를 3의 배수로 나눠야겠다고 생각했다. order는 숫자가 붙어있기에 불가능했다.

그뒤 다시 생각했다. order에서 9와 3을 꺼내자! 이 방법 역시 썩 좋은 방법은 아니였다.

숫자를 공백이나 콤마로 나눠보자! 공백보다는 콤마를 숫자 사이에 넣어 문제를 해결하고자 하는 생각이 강했다.

그러나 숫자 사이에 공백을 split을 작성해도 해결이 안되긴했다.(지금와서 생각해보면 order를 String으로 감싸서 풀면 수월하게 풀릴 수 있었다.)

콤마를 숫자 사이에 작성하는 방법은 모르기에 구글링을 통해 해결했다. (내가 참고했던 사이트이다. https://ziszini.tistory.com/45)

 

[JS] JavaScript - 숫자 3자리마다 콤마(,) 넣는 방법

오늘 포스팅은 자바스크립트에서 숫자를 출력할때, 숫자 3자리마다 콤마를 찍고 출력하는 방법에 관한 것입니다. 흔히 대표적으로 사용되는 2가지 방법으로 나눠 다뤄보겠습니다. 1. toLocaleString(

ziszini.tistory.com

 그뒤 if문을 통해 수월하게 문제를 풀 수 있었다.

 

 

728x90