문제
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5, 4, 3, 2, 1]을 리턴합니다.
제한조건
- n은 10,000,000,000 이하인 자연수입니다.
입출력 예
n | return |
12345 | [5, 4, 3, 2, 1] |
나의 풀이
숫자를 반대 순서로 넣어야 하기 때문에 split을 사용해 배열에 넣어준 뒤에 forEach와 unshift를 써서 배열의 앞부분부터 넣어주었다.
그런데 type 이 Number인 경우에는 split이 사용되지 않아 파라미터로 받은 n을 문자열로 변환하여 이 과정을 진행했다.
function solution(n) {
var answer = [];
n = String(n);
let result = n.split("")
result.forEach(element => {
answer.unshift(Number(element));
});
return answer;
};
나의 풀이 2
첫 번째 풀이에서 직관적으로 문제를 풀어봤다면 다른 의미에서 직관적으로 풀 수 있는 reverse()메서드를 사용해봤다.
reverse와 split을 이용해 역순의 '문자열' 배열을 만들고서 map 메서드를 통해 배열을 '숫자형'으로 바꾸어주었다.
function solution(n) {
let reverseArr = String(n).split("").reverse();
let answer = reverseArr.map((el)=> Number(el));
return answer;
};
'Algorithm' 카테고리의 다른 글
문자열을 정수로 바꾸기 [프로그래머스] (0) | 2023.10.16 |
---|---|
자릿수 더하기 [프로그래머스] (0) | 2023.10.16 |
x만큼 간격이 있는 n개의 숫자 [프로그래머스] (1) | 2023.10.16 |
약수 구하기 [프로그래머스] (0) | 2023.10.16 |
짝수와 홀수 [프로그래머스] (0) | 2023.10.16 |