View

자연수 뒤집어 배열로 만들기

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

 

제한사항 : n은 10,000,000,000이하인 자연수입니다.

 


 

 

예전에 풀었던 문제라 뭔가 비슷한 느낌이라 금방 풀었다! 얼른 1단계를 전부 풀고 2단계로 올라가고싶은데 이런 쉬운문제도 있지만 어려운 문제는 여전히 여러워서 슬프다😭 문제를 풀었던 방법은 아래와 같다. 

 

1. 자연수를 문자열로 타입 변환하기

2. 변환한 값을 하나씩 잘라 배열에 넣기

3. 반복문을 통해 배열에 넣은 값을 하나씩 빼서 자연수로 변환하기

4. 변환된 값을 앞에서부터 배열에 밀어넣기

function solution(n) {
    var answer = [];
    let arr = n.toString().split('');

    for(let i=0; i<arr.length; i++){
      var nun = Number(arr[i]);
      answer.unshift(nun);
    }
    return answer;
}

간단하게 풀려서 이것저것 많이 줄이긴 했는데도 이 길이가 나왔다. 다른사람들의 풀이를 참고하려고 봤는데 진짜 엄청난걸 발견해버렸다.

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

자연수에 문자를 더해 문자열로 변경하고, 그걸 잘라서 배열에 넣고, 뒤집은 다음 map을 돌려서 숫자로 다시 변환했다!!! 진짜 엄청난 생각이다!!! 왜 나는 map 생각을 못했을까?!?! 다른 사람 풀이를 보면 정말 정말 사고방식에 도움이 많이 된다.

 

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

Share Link
reply
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31