문제 및 풀이 과정
const data = "a10b9r1ce33uab8wc918v2cv11v9";
/* match()를 사용하면 정규표현식을 사용할 수 있음 */
function solution() {
let result = 0;
// data.match(/[0-9]/g); // ['1', '0', '9', '1', '3', '3', '8', '9', '1', '8', '2', '1', '1', '9']
// data.match(/['rev'][0-9]/g); // [ 'r1', 'e3', 'v2', 'v1', 'v9' ]
// console.log(data.match(/([rev])(10|[0-9])/g)); // match()를 이용해서 정규식을 활용하는데 [rev]각각의 문자 r, e, v뒤에 10 or 0-9까지의 숫자를 찾음 10을 먼저 적은 이유는 [0-9]가 먼저 매핑되면 10은 나올일이 없기 때문
const sortData = data.match(/([rev])(10|[0-9])/g);
for (let i of sortData) {
// console.log(i.slice(1)); // 첫 번째 문자를 제외한 숫자들
result += Number(i.slice(1));
}
result = result.toString(); // 문자열로 변환
return `${result[0]}월 ${result[1]}일`;
}
solution();
출처 : JavaScript 알고리즘 베스트 10(제주베이스캠프 Hojun Lee)
문제를 풀며 느낀 점
- 정규 표현식 사용법을 잊지말자!
- slice()를 유용하게 사용하자!
'코딩 테스트 풀이 🛠' 카테고리의 다른 글
[프로그래머스] 소수 만들기 (0) | 2024.07.12 |
---|---|
[프로그래머스] 모의 고사 (0) | 2024.06.19 |
[프로그래머스] 다음에 올 숫자 (0) | 2024.03.31 |
[프로그래머스] 기능개발 (1) | 2024.03.15 |
[프로그래머스] 2019 카카오 개발자 겨울 인턴십 튜플 (0) | 2024.03.09 |