728x90
반응형

1. 문제점
프로그래머스 알고리즘 문제풀이 - 자바스크립트 [ 문자열정라하기 (1) ]

 

2. 시도해본 것들

1) 문자열안에서 숫자만 뽑아온다.

2) 오름차순으로 정렬한다.

 

처음에 봤을땐 쉬울 것 같았다.

if문에서 typeof로 number인지 비교하면 되지않을까?

결과적으로 실패하였고 다른 방법을 찾아야 했다.

 

3. 해결과정

우선 문자의 배열화는 다음과 같이 하였다.

let arr = [...my_string]

이전에는 array.from()함수를 썼지만 위의 방법이 더 간단해서 좋다.

 

그럼 문자열안에서 숫자만 가져오는 방법이 뭐가 있을까?

parseInt() 함수를 사용한다.

만약 배열안에 값이 숫자가 아니라면 NaN을 반환하기에 이를 조건문에 넣으면 된다.

 

이제 마지막 오름차순을 하는 방법은 다음과 같다.

answer.sort( (a,b) => a-b)

반대로 내림차순은?

answer.sort( (a,b) => b-a)

원리는 잘모르지만 외우기로 했다.

 

 

4. 알게 된 점

나의 코드

function solution(my_string) {
    let answer = [];
    let arr = [...my_string]
    for(i=0; i<arr.length; i++){
        let val = parseInt(arr[i]);
        if(!isNaN(val)){
            answer.push(val);
        }
    }
    return answer.sort((a,b) => a-b);
}

 

남의 코드

function solution(my_string) {
    return my_string.match(/\d/g).sort((a, b) => a - b).map(n => Number(n));
}
function solution(my_string) {
    return my_string.split("").filter((v) => !isNaN(v)).map((v) => v*1).sort((a,b) => a-b)
}
728x90
반응형

+ Recent posts