Lv.0 코딩 테스트 문제 中 369게임
👉 문제 설명
머쓱이는 친구들과 369게임을 하고 있습니다.
369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는
숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다.
머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때
머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
👉 제한사항
- 1 ≤ order ≤ 1,000,000
👉 입출력 예
order | result |
---|---|
3 | 1 |
29423 | 2 |
👉 입출력 예 설명
입출력 예 #1
- 3은 3이 1개 있으므로 1을 출력합니다.
입출력 예 #2
- 29423은 3이 1개, 9가 1개 있으므로 2를 출력합니다.
👉 내가 푼 풀이
function solution(order) {
return order.toString().split('').filter(num => num !== 0 && num % 3 === 0).length;
}
내가 푼 풀이 생각 나열
1. 반복문을 사용하기 위해선 타입을 변환시켜줄 필요성이 있기에 문자열로 변환 후 배열에 각각 나누어서 담았다.
2. filter를 사용해서 숫자가 0이 아닌지 확인하고 각 자릿수가 3의 배수인지 확인한다.
3. 필터링된 배열의 길이를 반환한다.
다른이가 푼 풀이
function solution(order) {
return (''+order).split(/[369]/).length-1;
}
1. 빈문자열과 숫자를 연결해서 문자열로 변환시키는 기발함
2. 정규표현식을 이용하여 3, 6, 9를 구분자로 나누어 반환하는데, 만약 3, 6, 9가 한번도 등장하지 않으면 길이가 1이 되는 결과가 발생
3. 그러므로 나눈 배열의 길이에서 실제로 숫자가 등장한 횟수를 구하기 위해 길이에서 -1 해주어서 간결하고 효율적으로 만듦
'코딩테스트-기록' 카테고리의 다른 글
[프로그래머스] JS - 모음 제거 (0) | 2024.04.25 |
---|---|
[프로그래머스] 주사위 개수 (0) | 2024.01.27 |
[프로그래머스] 자바스트립트 배열 값 추가, 제거 pop(), push(), shift(), unshift() 함수 (0) | 2024.01.24 |
[프로그래머스] 중복값 개수 구하기 (0) | 2024.01.09 |