TIL
2023.04.05_코딩테스트 연습
minnjeong
2023. 4. 5. 23:48
369 게임
문제 설명
머쓱이는 친구들과 369게임을 하고 있습니다. 369게임은 1부터 숫자를 하나씩 대며 3, 6, 9가 들어가는 숫자는 숫자 대신 3, 6, 9의 개수만큼 박수를 치는 게임입니다. 머쓱이가 말해야하는 숫자 order가 매개변수로 주어질 때, 머쓱이가 쳐야할 박수 횟수를 return 하도록 solution 함수를 완성해보세요.
입출력 예 설명
입출력 예 #1
- 3은 3이 1개 있으므로 1을 출력합니다.
입출력 예 #2
- 29423은 3이 1개, 9가 1개 있으므로 2를 출력합니다.
시도했지만, 실패한 코드
function solution(order) {
let answer = 0;
let arr = [];
for (let i = 0; i <= order.length; i++) {
if (arr[i].includes('3') || arr[i].includes('6') || arr[i].includes('9')) {
answer += arr[i];
}
}
return answer;
}
toString() : 숫자 타입을 문자 타입으로 변경할 수 있다.
// `toString()` 메서드를 사용해 숫자형에서 문자열로 변환하기
var num = 24;
var str = num.toString();
console.log(num); // 24
console.log(str); // "24"
값을 괄호 안에 표시해야한다. 괄호를 생략하면 자바스크립트에서 Invalid or unexpected token 에러가 발생한다.
// toString 메서드로 다양한 숫자 유형을 문자열로 변환하기
24.toString(); // Error: Invalid or unexpected token
(24).toString(); // "24"
(9.7).toString(); // "9.7"
(-20).toString(); // "-20"
match() : 특정 텍스트 안에 검색할 단어, 찾고 싶은 단어가 있는 경우 해당 텍스트가 문구에 포함되어 있는지 확인할 수 있다.
해당 문자열,match('찾을 단어');
let str = 'red is impressive.'
str.match('red');
// red가 있으므로 red를 출력함
if문에 사용할 수도 있다
if (str.match('red') === 'red') {
console.log('Okay');
}
글로벌(g) 및 대/소문자 무시(i) 플래그를 사용하여 match()를 사용한다.
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
나의 풀이
function solution(order) {
var answer = 0;
let arr = order.toString().match(/[369]/g);
if (arr !== null) {
answer = arr.length;
}
return answer;
}
다른 풀이
function solution(order) {
var answer = [...order.toString().matchAll(/[3|6|9]/g)].length;
return answer;
}
다른 풀이2
function solution(order) {
return (''+order).split(/[369]/).length-1;
}