본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 50 - 문자열 정렬하기(1))

728x90

 

# 문제

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



# 답안

// 1. 입력: my_string -> 문자열 "hello" 같은거 
// 2. 출력: 숫자만 골라서 오름차순 정렬


// 방법1)
function solution(my_string) {
    let newArr = [];
    let arr = my_string.split(''); // 쪼개서 배열로 만든다
    for (let i=0; i<arr.length; i++){
        let num = Number(arr[i]); // 숫자로 바꾼다
        if (!isNaN(num)){ // 숫자면,
        newArr.push(num); // 빈배열에 넣기     
        }
    }
    return newArr.sort((a,b)=>a-b); // 오름차순 정렬
}


// 방법2)
function solution(my_string) {
    return my_string
        .split("") // 쪼개서 배열로 만든다.
        .filter(char => !isNaN(parseInt(char)))  // 숫자만 필터한다.
        .map(number => parseInt(number))  // 요소 하나하나를 숫자로 바꾼다.
        .sort((a, b) => a - b); // 오름차순 정렬 



# 인사이트 
// isNaN() 함수는 값을 숫자로 변환하기 위해 Number() 함수를 내부적으로 사용합니다. 따라서 isNaN() 함수가 문자열에 적용되면 먼저 문자열을 숫자로 변환한 후에 숫자가 아닌지 확인함
}
728x90