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로 내림해주었다.
이런 방식으로도 자연수의 각 자릿수를 원소로 가지는 배열로 만들 수 있다.