자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
n은 10,000,000,000이하인 자연수입니다.
n | return |
---|---|
12345 | [5,4,3,2,1] |
function solution(n) {
let arr = (n+"").split("").reverse().map(Number);
//n뒤에 공백을 붙여 숫자를 문자로 만들어 준다.
//split을 이용해 문자를 배열로 나누어 준다.
//reverse를 이용해 배열을 뒤집어 준다.
//map을 사용해서 문자 배열을 숫자로 만들어 준다.
return arr;
}
return (n+"").split("").reverse().map(v => parseInt(v));
여기서는 number을 이용해서 숫자 배열로 바꿔준 게 아니라 parseInt를 사용해서 숫자 배열로 만들어 줬다. parseInt()는 원래는 문자를 파싱해서 특정 진수로 바꿔주는 함수이다. 두 번째 인자를 주지 않으면 자동으로 10진법으로 변환한 숫자로 바꾸어 준다. 즉, 문자를 숫자로 바꾸게 되는 것이다.
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}