⌨️ 프로그래머스/코딩테스트 입문

[프로그래머스] 문자열 정렬하기(1) | JS

하나둘세현 2024. 7. 22. 10:26
728x90

문제

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

해결 과정

function solution(my_string) {
    let emptyValue = my_string.replace(/[a-z]/g, '');
    let emptyValue2 = Array.from(String(emptyValue), Number);
    
    return emptyValue2.sort();
}

 

replace()를 이용하여 a-z의 문자들을 my_string에서 부터 제거해줬다.

그렇게 되면 값들이 숫자로 변환해야하는데 방법을 몰라서 구글링했다. 

 

숫자를 문자열로 만들어 주기 위해 참고한 사이트 👇

https://stackoverflow.com/questions/19182266/how-to-convert-an-integer-into-an-array-of-digits

 

How to convert an integer into an array of digits

I want to convert an integer, say 12345, to an array like [1,2,3,4,5]. I have tried the below code, but is there a better way to do this? var n = 12345; var arr = n.toString().split(''); for (i = 0...

stackoverflow.com

 

Array.from(String(emptyValue), Number);

 

위의 코드에 대한 설명을 해보겠다.

  • emptyValue의 값은 현재 숫자이다. 숫자이기에 문자열로 변환시켜 준다. 
    • 문자열로 변환하는 이유는 각 자리 숫자를 개별 요소로 다루기 위해서이다. 자바스크립트에서는 숫자를 바로 분리하는 방법이 없기에 숫자를 문자열로 변환하여 접근한다.
  • 숫자를 문자열로 변환시켜줬으면 문자열을 배열로 변환한다. 문자열로 변환시키기 위해 Array.from()을 이용한다. 
  • 그 뒤 각 문자를 Number()함수를 이용하여 숫자로 이루어진 배열로 만들었다.

 

 

 

728x90