코테
Lev.1 자연수 뒤집어 배열로 만들기
sungtt
2022. 4. 20. 06:36
프로그래머스 자연수 뒤집어 배열로 만들기
문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요.
예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
제한사항
- n은 10,000,000,000이하인 자연수입니다.
직접 풀이 결과
let arr = [];
function solution(n) {
for (let i = 0; i < n.toString().length; i++) {
arr.push(Number(n.toString().substring(i, i + 1)));
}
return arr.reverse();
}
console.log(solution(12345)); // [5,4,3,2,1]
1. 배열을 만든다.
2. toString()을 써서 인수로 들어온 Num타입을 string타입으로 변경한다.
3 substring()을 이용, for문으로 인수의 length만큼 반복하며, 문자열의 인덱스 0번부터 반환해준다.
4. Number()로 반환된 문자열을 다시 Num타입으로 변환한다.
5. 배열에 push() 한 후 reverse()로 뒤집어준다
타입을 두번 변환한다는 것이 마음에 들지 않았다.
참고 풀이 결과 - 1
function solution(n) {
return (n + '').split('').reverse().map(n => parseInt(n));
}
1. 인자를 따옴표로 감싸주어 string으로 변환시킨다.
2. split()을 이용해 인덱스마다 나눠진 배열을 반환한다.
3. reverse()로 배열을 뒤집어준다.
4. map()으로 배열의 각 요소를 호출하며, parseInt()로 숫자로 변환시킨다.
후기
toString이 아니더라도 문자열로 변환할 수 있는 방법을 알았다.
split은 자주 사용했던 거 같은데 하필 기억이 나지 않았다..
다음엔 기능을 까먹지 말자
parseInt()의 두 번째 인자도 받을 수 있는데, 숫자에 따라 그에 맞는 진수로 변환시킨다.
ex) 2는 2진수 16은 16진수