자연수 뒤집어 배열로 만들기(Javascript)

·2022년 9월 14일
0
post-thumbnail

문제

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

제한 조건

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

입출력 예

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

나의 풀이

function solution(n) {
    let arr = (n+"").split("").reverse().map(Number);
  //n뒤에 공백을 붙여 숫자를 문자로 만들어 준다.
  //split을 이용해 문자를 배열로 나누어 준다.
  //reverse를 이용해 배열을 뒤집어 준다.
  //map을 사용해서 문자 배열을 숫자로 만들어 준다. 
    return arr;
}

참고할 풀이1

  return (n+"").split("").reverse().map(v => parseInt(v));

여기서는 number을 이용해서 숫자 배열로 바꿔준 게 아니라 parseInt를 사용해서 숫자 배열로 만들어 줬다. parseInt()는 원래는 문자를 파싱해서 특정 진수로 바꿔주는 함수이다. 두 번째 인자를 주지 않으면 자동으로 10진법으로 변환한 숫자로 바꾸어 준다. 즉, 문자를 숫자로 바꾸게 되는 것이다.

참고할 풀이2

function solution(n) {
    var arr = [];//빈 배열 arr을 만들어 줌.

    do {
        arr.push(n%10);
      //push는 배열의 끝에 인자를 추가해주는 함수
      //n이 12345일 때 5를 배열에 넣어줌.
        n = Math.floor(n/10);//1234.5를 정수로 만들어줌 -> 1234
    } while (n>0);//1234가 0보다 크니까 반복.
  //{5, 4, 3, 2, 1}이 차례로 들어가게 됨. 

    return arr;
}

꼭 do while문을 써줄 필요는 없고 while문으로도 가능한 듯 하다.

function solution(n) {//n이 12345일 때
    var arr = [];

    while(n>0){
        arr.push(n%10);
        n = Math.floor(n/10);
    }
    return arr;
}
//{5, 4, 3, 2, 1}
profile
전 이것도 몰라요

0개의 댓글

관련 채용 정보