[Programmers] 문자열 정렬하기 (1)

그래도 해야지·2023년 4월 24일
0

Programmers

목록 보기
21/40
post-thumbnail

문제 설명
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

🤔 해설

처음 풀었을 때 굉장히 지저분하게 풀었다..ㅋㅋ

^0-9는 숫자가 아닌 문자들을 의미하는 패턴
g는 문자열에서 모든 패턴을 찾으라는 의미
replace(regex, "")을 수행하면 regex에 해당하는 모든 패턴을 찾아서 ""으로 변환합니다.
즉, 숫자가 아닌 문자들이 모두 제거

그 다음 sort()함수로 오름차순 정렬을 해줍니다.

result.split('').sort((a, b) => a-b)

그러면 배열의 요소들이 string타입이 되기때문에 map()함수로 number타입으로 변환해줍니다.

✅ 답 1

function solution(my_string) {
    
    const regex = /[^0-9]/g;
    const result = my_string.replace(regex, "")
    const answer = result.split('').sort((a, b) => a-b)
   return answer.map(Number)
}

하지만 좀더 깔끔하게 코드를 정리해보자면

✅ 답 2

function solution(my_string) {
    const regex = /[^0-9]/g;
    return my_string.replace(regex, "").split('').sort((a, b) => a-b).map(Number)
}

0개의 댓글