[알고리즘] 자연수 뒤집어 배열로 만들기

문제설명

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

제한사항

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

알고리즘

  1. 주어진 숫자를 문자열화시켜 분리 후, 배열에 담는다.
  2. 배열 안의 요소를 숫자로 형변환한다.
  3. 반전시킨 결과를 반환한다.

주어진 input을 보고서 내림차순 정렬이라고 생각했으나 "반전"을 해야하는 상황이었다.

// 아래와 같은 결과를 내야한다.
12345[5,4,3,2,1]
10[1,0]

구현

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

reverse 를 쓰지 않고 풀기

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

split 과 reverse 를 쓰지 않고 풀기

function solution(n) {
    var answer = [];
    
    let tmp = n.toString();
     
    for(let i=0; i < tmp.length; i++){
      answer.push(Number(tmp.charAt(tmp.length-1-i)))
    }
    
    return answer;
}

//for문 조건 변경
function solution(n) {
    var answer = [];
    
    let tmp = n.toString();
     
    for(let i=tmp.length-1; i >=0; i--){
      answer.push(Number(tmp.charAt(i)))
    }
    
    return answer;
}

다른사람 풀이

숫자로 풀어낸 방법. 신박하다...

function solution(n) {
    var arr = [];

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

    return arr;
}

좋은 웹페이지 즐겨찾기