[Javascript] LV.1 자연수 뒤집어 배열로 만들기

은비·2023년 9월 5일
1

Programmers_CodingTest

목록 보기
39/72
post-thumbnail

문제 설명

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건

  • n은 10,000,000,000이하인 자연수입니다.

입출력 예

nreturn
12345[5,4,3,2,1]

✍ SOLUTION1

const solution = (n) => Array.from(String(n)).reverse().map(x=>Number(x));

/* 
내가 처음 작성한 코드이다.

1. 먼저 자연수 n을 Array.from을 통해서 배열로 만들어 준다.
2. reverse 메서드를 사용하여 순서를 뒤집어 준다.
3. map을 이용하여 배열안에 요소들의 타입을 String에서 Number로 변경해준다. 
 */

✍ SOLUTION2

const solution = (n) => [...String(n)].reverse().map(x=>parseInt(x));

/*
SOLUTION1의 방법과 다르게 조금 다르게 작성한 코드이다. 
실행속도는 비슷한거 같은데 SOLTION2가 조금 더 빠르다.

1. 자연수 n을 String으로 변환 후 배열 안에 스프레드 문법을 이용하여 펼쳐준다.
2. reverse 메서드를 사용하여 순서를 뒤집어 준다.
3. map을 이용하여 배열안에 요소들의 타입을 String에서 parseInt로 변경해준다. 
*/

✍ SOLUTION3

const solution = (n) => (n + '').split('').reverse().map(n => parseInt(n));

/*
toSting()이나 String()으로 형변환 하지 않고 자연수 n에 ''를 더해주어 String으로 강제 형변환을
해주는 방식이다. 
*/

✍ SOLUTION4

const solution = (n) => {
    var answer = [];
    n = n + "";
    for (var i = n.length - 1; i >= 0; i--) {
        answer.push(Number(n[i]));
    }
    return answer;
}

/*
for문을 사용하여 작성한 코드이다. 

1. 빈 배열을 갖는 answer 변수를 만들어준다.
2. 자연수 n을 (n + "")을 통해서 문자열로 강제 형변환 해준다.
3. n의 length -1 부터 0까지 1씩 감소하는 for문을 만들어준다.
4. for문을 돌며 answer에 인덱스로 접근하여 나온 값을 Number로 변환 후 push 메서드로
추가하여 준다.
5. answer를 리턴한다.
*/

출처 : 프로그래머스 스쿨 | 코딩테스트 연습

0개의 댓글