프로그래머스 Lv.1 자연수 뒤집어 배열로 만들기 JS

FE 개발자 신상오·2022년 5월 24일
0

프로그래머스

목록 보기
5/20
post-thumbnail

문제





풀이

1. .split() 사용 위해 string 타입으로 변환

const strN = String(n).split('');

2. .reverse() 사용 배열 뒤집기

    strN.reverse();

3. 반복문으로 문자열 타입인 배열의 요소들을 숫자로 변환

       for (let i = 0; i < strN.length; i++){
        strN[i] = Number(strN[i])
    }

최종 코드

function solution(n) {
    const strN = String(n).split('');
    strN.reverse();
    
    for (let i = 0; i < strN.length; i++){
        strN[i] = Number(strN[i]);
    }
    
    return (strN);
}

다른 풀이

1. .split() 사용 위해 string 타입으로 변환 -> 숫자 + 문자 = 문자

const strN = (n + '').split('');

2. .map() 사용 배열의 각 요소 숫자로 변환

strN.map(el => Number(el))

3. .reverse() 배열 뒤집기

최종 코드

function solution(n) {
    const strN = (n + '').split('')

    
    return strN.map(el => Number(el)).reverse();
}

⚠️ return 에서 바로 .map(), .reverse() 메소드를 사용한 이유는
두 메소드가 배열의 원본을 변환하지않는 메소드이기 때문입니다.




function solution(n) {
    
    return (n + '').split('').map(el => Number(el)).reverse();
}

위 문제풀이를 한 줄로도 만들 수 있습니다


.reverse() 구현

어떤식으로 작동되는 메소드인지 궁금해서 이런 식으로 작동하지 않을까 생각돼서 구현해봤습니다!

const strN = String(12345).split('');
const arr = strN.slice();
const newArr = [];

for(let i = 0; i < strN.length; i++){
    newArr.push(arr.pop());
}

console.log(newArr);
profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글