찰리의 이야기

Javacsript 자연수 뒤집어 배열로 만들기 본문

찰리: 코딩 연습

Javacsript 자연수 뒤집어 배열로 만들기

쨜리 2021. 9. 14. 10:41
반응형

Javacsript 자연수 뒤집어 배열로 만들기

 

 

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

제한 조건

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

입출력 예

nreturn

12345 [5,4,3,2,1]

 

주어진 코드

function solution(n) {
    var answer = [];
    return answer;
}

지난 번 정수 내림차순으로 배치 문제와 유사해서 

내장 메서드를 이용해서 풀어보았다.

알고보니 이런 접근을 문자 풀이 방식이고,

숫자 풀이방식으로도 풀 수 있었다. 살펴보도록 하자.

function solution(n) {
    return n.toString().split("").map(x => Number(x)).reverse();
}

 

자연수를 문자열로 바꾼 다음,

split("")으로 문자열을 하나하나 인덱스로 넣은 다음,

map()메서드를 이용해서 내부 인덱스들을 숫자화 한다음,

reverse()로 순서를 바꾸어 주었습니다.

 

여기까지가 제 풀이 방법이고

다른 풀이법도 살펴보았습니다.

 

function solution(n) {
    // 숫자풀이
    var arr = [];

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

    return arr;
}

 

일단 do...while 문으로 반복하는데,

자연수의 순서를 바꾸기 위해서,

숫자의 맨 끝에서 한자리씩 떼어냅니다.

10으로 나눈 나머지를 구해서 배열에 넣습니다.

그리고나서 10으로 나눈 몫을 남겨서 다시 n으로 넘겨

한자리씩 마치 stack 처럼 넣으면서 순서를 바꾸는 것입니다.

 

문자 방식보다는 이 숫자방식이 더 빠르다고 합니다.

숫자로 순서를 바꿀때는 한자리씩 바꿔봅시다!

 

 

 

 

 

Javacsript 자연수 뒤집어 배열로 만들기

반응형
Comments