문제 설명
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
처음 풀었을 때 굉장히 지저분하게 풀었다..ㅋㅋ
^0-9
는 숫자가 아닌 문자들을 의미하는 패턴
g
는 문자열에서 모든 패턴을 찾으라는 의미
replace(regex, "")
을 수행하면 regex에 해당하는 모든 패턴을 찾아서 ""으로 변환합니다.
즉, 숫자가 아닌 문자들이 모두 제거
그 다음 sort()
함수로 오름차순 정렬을 해줍니다.
result.split('').sort((a, b) => a-b)
그러면 배열의 요소들이 string타입이 되기때문에 map()
함수로 number타입으로 변환해줍니다.
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)
}
하지만 좀더 깔끔하게 코드를 정리해보자면
function solution(my_string) {
const regex = /[^0-9]/g;
return my_string.replace(regex, "").split('').sort((a, b) => a-b).map(Number)
}