코테

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진수