[코테 풀기] 369 게임(JS)

JCH27·2023년 11월 22일
0

coding_test

목록 보기
9/12

코딩테스트 문제를 풀어보겠다
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.


문제 : 주어진 숫자(정수)에 포함된 3, 6, 9 의 수 만큼 리턴


해결 1 - 배열로 풀기

	const solution = (order) => (String(order).split('').filter((itm) => ( itm!=='0'&& Number(itm)%3===0)).length);
	// 숫자를 문자열로 바꾼 뒤 배열로 바꾼 뒤 3으로 나누어 떨어지는 값들을 필터링 한 다음 개수를 리턴
	// 단, 0은 제외해야 한다.

해결 2 - 정규표현식 사용하기 (replaceAll / matchAll)

	// 첫 번째 방법
	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 은 배열에서 전달인자로 받은 값과 비교한 다음 배열로 리턴해준다.

(작은 수) % (큰 수) 의 결과는 언제나 (작은 수)가 나온다는 것을 기억하자.
정규식과 정규식을 활용한 메서드를 자주 활용해봐야겠다.

profile
포기하지 않는 키보드 워리어

0개의 댓글