지식 정리 📝

정규식을 활용한 특정 문자뒤의 숫자들의 합 출력

엄성준 2024. 5. 4. 23:19

문제 설명 

r, e, v 뒤에 나오는 값을 더하여 나온 최종 숫자에서 앞자리를 로 뒷자리를 로 출력

r, e, v 뒤에 나오는 숫자는 1부터 10까지입니다. 이를 넘어가는 숫자가 나올 경우 앞 숫자만 뽑아냅니다.

문자열: adr10bb1d9ia10e33b7u88k3j1a3v11v9 

나의 풀이

function solution(data){
	// match()를 통해서 정규식으로 원하는 값 추출
    // [rev]: "r", "e", "v" 중 하나의 문자
    // 10 or 0 ~ 9 사이의 숫자
    data = data.match(/[rev](10|[0-9])/g)
    // 예상 값 -> ['r10', 'e3', 'v2', 'v1', 'v9']
    
    let result = 0;
    for(let i of data){
        result += +i.slice(1,i.length); // result에 배열 요소의 1부터 length-1까지 slice한 값을 더함
    }
    result = result.toString();
    return `${result[0]}${result[1]}일`;
}

 

느낀 점

정규식을 통해서 문제를 푸니까 정말 간결하고 편한 것 같습니다.

매번 정규식은 인터넷 검색이나 chat gpt를 통해서 도움 받았었는데 의미를 알게 되니 앞으로는 제 생각으로 정규식을 작성할 수 있을 것 같습니다.