코딩테스트 문제를 풀어보겠다
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.
문제 : 주어진 숫자(정수)에 포함된 3, 6, 9 의 수 만큼 리턴
const solution = (order) => (String(order).split('').filter((itm) => ( itm!=='0'&& Number(itm)%3===0)).length);
// 숫자를 문자열로 바꾼 뒤 배열로 바꾼 뒤 3으로 나누어 떨어지는 값들을 필터링 한 다음 개수를 리턴
// 단, 0은 제외해야 한다.
// 첫 번째 방법
const solution = (order) => String(order).replaceAll(/0/g,'').split('').filter(i => parseInt(i)%3===0).length;
// 숫자 자료형을 문자로 바꾼 뒤 replaceAll 을 활용해 0을 찾아 없앤다.
// 문자열을 배열로 바꾼 뒤 3으로 나누어 떨어지는 값들을 필터링 한 다음 개수를 리턴.
// 두 번째 방법
const solution = (order) => ([...String(order).matchAll(/[3|6|9]/g)].length);
// 숫자를 문자로 바꾼 뒤 배열에 스프레딩한다.
// matchAll 을 활용해 3 6 9 를 찾아 재정렬한 다음 리턴한다.
// matchAll 은 배열에서 전달인자로 받은 값과 비교한 다음 배열로 리턴해준다.
(작은 수) % (큰 수) 의 결과는 언제나 (작은 수)가 나온다는 것을 기억하자.
정규식과 정규식을 활용한 메서드를 자주 활용해봐야겠다.