🧬알고리즘/Programmers
[JavaScript] 자연수 뒤집어 배열로 만들기
뉴발자
2024. 8. 19. 19:28
728x90
문제
자연수 n이 매개변수로 주어진다.
n을 뒤집어 각 자리 숫자를 원소로 가지는 배열을 반환하는 함수를 작성하라.
예시
n | result |
12345 | [5, 4, 3, 2, 1] |
나의 풀이
const solution = n => (n+"").split("").map(v => +v).reverse();
다른 풀이
function solution(n) {
var arr = [];
do {
arr.push(n%10);
n = Math.floor(n/10);
} while (n>0);
return arr;
}
풀이 방법
먼저 (n+"")를 사용해 자연수 n을 문자열로 바꿔주고 split() 함수를 사용해 각 자리를 원소로 하는 배열을 만들었다.
그리고 map() 함수를 사용해서 각 원소를 숫자로 변환한 후 reverse() 함수로 역순 정렬해주었다.
내가 푼 방법 말고 자연수 그대로 푸는 방법은 다음과 같다.
먼저 자연수 n을 10으로 나눈 나머지 값을 배열에 넣어준다.
그러면 자연수 n의 마지막 자리 숫자가 배열로 들어가게 된다.
그리고 자연수 n을 10으로 나눈 값의 정수 부분을 자연수 n에 넣는다.
이 작업을 n의 값이 0이 될 때까지 반복한다.
두 가지 방법으로 테스트했을 때 코드 실행 속도에는 큰 차이가 없었다.
JS 함수를 사용할 것인지, 아니면 직접 계산식을 작성할 것인지는 개발자의 선택인 것 같다.
728x90