The journey to becoming a developer

My future is created by what I do today, not tomorrow.

Algorithms/Programmers

[프로그래머스 Level 1] 자연수 뒤집어 배열로 만들기 (자바스크립트)

Millie 2021. 10. 10. 06:50

Description

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

Constraints

n은 10,000,000,000이하인 자연수입니다.

 

 

My Solution

메서드를 이용해 아주 간단하게 풀 수 있는 문제였다. 

 

우선 자연수 n을 문자열로 만든 후, split으로 각 자릿수를 원소로 가지는 배열로 변환한다.

그 다음 배열의 각 자릿수를 문자열에서 숫자로 변환한 후, reverse()를 이용해 원소의 순서를 뒤집어주면 끝. 

 

Other's Solution

function solution(n) {
    var answer = [];
    n = n + "";
    for (var i = n.length - 1; i >= 0; i--) {
        answer.push(Number(n[i]));
    }
    return answer;
}

 

function solution(n) {
    return n.toString().split('').reverse().map(o => o = parseInt(o));
}

 

function solution(n) {
    // 문자풀이
    // return (n+"").split("").reverse().map(v => parseInt(v));

    // 숫자풀이
    var arr = [];

    do {
        arr.push(n % 10);
        n = Math.floor(n / 10);
    } while (n > 0);

    return arr;
}

문자풀이와 숫자풀이, 이렇게 두 개로 나눠서 풀이를 했다는 것이 흥미로워서 가져왔다. 

문자풀이는 내가 한 방식과 거의 동일하지만 숫자풀이의 방식을 좀 알아둘 필요가 있을 것 같다.

 

자연수를 10으로 나눈 나머지를 빈 배열에 push하고, 자연수는 10으로 나눈 것을 Math.floor로 내림해주었다. 

이런 방식으로도 자연수의 각 자릿수를 원소로 가지는 배열로 만들 수 있다.