문제 설명
자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
🙋♀️ 내 생각
숫자를 하나하나 쪼개면서 배열에 담기위해서 split()을 사용해야겠다고 생각했다.
split()은 string타입에 사용가능하므로 우선 타입을 string으로 만들어야한다.
그러고나서 split으로 쪼개면서 배열에 값을 하나하나 담고, 타입을 다시 number로 변경한 뒤, reverse()을 통해서 배열의 순서를 반대로 바꾼다.
✅ 내 코드
function solution(n) {
return n.toString().split('').map(v=>Number(v)).reverse()
}
우선, tostring()을 통해서 n의 값들을 string타입으로 변경한다. n.toString()
(이렇게 변경하는 이유는 split메서드를 사용하기 위한 전처리이다. ⭐️split()은 string타입에만 사용할 수 있다)
split('')을 통해 통으로 이루어져있는 값을 하나하나 쪼갠다. 그러면서 동시에 배열에 담는다.
🖥 split(): String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
구분자를 사용해서 1️⃣여러개로 나눌수 있으면서 동시에 2️⃣그 값을 배열에 담는다.
(굳이 n을 string으로 타입을 변경해가면서 split()을 사용하는 이유이다.)
그리고 나서 다시 배열안의 값들을 number타입으로 변경한다.
배열안의 값들을 일일이 변경하기 위해서 map()을 사용한다. map을 통해서 배열을 돌면서 특정한 수행을 하도록 지시할 수 있다.
map(v=>number(v))를 통해서 배열을 돌면서 하나하나 모두 number타입으로 변환하고 그 값들을 담고 있는 새로운 배열을 만들어낸다. 숫자타입으로 바꾸기 위해 number()을 사용했는데, parseInt()를 사용해도 된다.
그리고 마지막으로 reverse()를 통해 배열안의 값들의 순서를 거꾸로 변경한다.
🙋♀️ 내 생각
split()이 string타입에만 사용가능하다는 것을 미리 알고있다면, 'split의 사용을 위해서 string타입으로 변환해야겠구나!!'를 바로 떠올릴 수 있을 것 같다. split()은 자주 사용하는 메서드이기때문에 그때그때 찾아봐도 좋지만, string에만 사용가능하다는 특징정도는 외워둬도 좋을 것 같다는 생각이 들었다.
'JavaScript > 알고리즘' 카테고리의 다른 글
프로그래머스 제일 작은 수 제거하기 JS ( findIndex(), splice() ) (0) | 2023.09.02 |
---|---|
프로그래머스 두 정수 사이의 합 JS ( for문 / 가우스 합계) (0) | 2023.09.02 |
프로그래머스 x만큼 간격이 있는 n개의 숫자 JS (0) | 2023.08.25 |
프로그래머스 나머지가 1이 되는 수 찾기 JS (0) | 2023.08.23 |
프로그래머스 가운데 글자 가져오기 JS (1) | 2023.08.19 |