1. 문제
자연수 n 을 뒤집어
각 자리 숫자를 원소로 가지는
배열 형태로 리턴해주세요.
예를들어 n이 12345면 [5, 4, 3, 2, 1]을 리턴합니다.
2. 풀이
const solution = (n) =>
Array
.from ({length : String(n).length}, (_, i) => i)
.sort((a, b) => b - a)
.map((value) => Number(String(n)[value]))
Array.from을 사용해서 n의 길이만큼
인덱스가 나열된 배열을 하나 뽑은 다음
내림차순으로 정렬했다.
그리고 map 함수로 n을 문자열로 바꿔
인덱싱을 가능하게 해주었고
위 배열을 인덱스 값에 넣어
마지막 순서대로 배열이 나오게 만들었다.
3. 해설
function solution2 (n) {
return (n+'').split('').reverse().map(n => parseInt(n));
}
- 오늘 배운점
1. (n+'')를 하면 문자열로 바뀌게 된다.
2. split에 ('') 를 추가하면 문자열 인덱스마다 나눠주게 된다.
3. reverse() 를 쓰면 배열을 거꾸로 뒤집어준다.
새로운 메서드 이용방법 3가지나 알게되었다..!
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 두 정수 사이의 합 (1) | 2023.12.04 |
---|---|
[코딩테스트] 콜라츠 추측 (0) | 2023.11.30 |
[코딩테스트] 하샤드 수 (1) | 2023.11.24 |
[코딩테스트] 특정 수 이하의 홀수 배열만 반환 (0) | 2023.11.06 |
[코딩테스트] 최빈값 구하기 (1) | 2023.11.03 |