티스토리 뷰

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

제한 조건
n은 10,000,000,000이하인 자연수입니다.


입출력 예
n          return
12345 [5,4,3,2,1]

 

풀이 과정

더보기

가장 먼저 떠오른 생각은 이걸 어떻게 해????였다.

숫자를..뒤집어서..뒤집은 걸 잘라서 넣으면 되나? 어떻게 뒤집는데..?

일단 할 수 있는 걸 하기로 했다. 하나씩 하다 보면 길이 보일지도 모른다. 

//자연수 n을 문자열로 만들어서
//문자열의 숫자 하나하나씩 배열에 넣는다. 
//그리고 우째야하노

 

첫번째 코드

function solution(n) {
    let num = n
    let string = num.toString(); //"12345"
    let newnumarr = [];
    string.for(let i=0; i<=string.length; i++){
        let oneLetter = string.slice(i,i+1)
        newnumarr.unshift(newnum);
    }
    return newnumarr;
}

 일단 숫자를 toString으로 문자로 변환했고, for문을 이용하여 하나씩 문자를 잘라 unshift를 이용해 뒤에서부터 문자를 넣기로 했다. 코드 실행을 하니, 에러가 뜬다. 

가만 보니 for문이 잘못되어 있다. .for는 존재하지 않는다. 고치고 코드 실행.

 

두번째 코드

function solution(n) {
    let num = n
    let string = num.toString(); //"12345"
    let newnumarr = [];
    for(let i=0; i<=string.length; i++){
        let oneLetter = string.slice(i,i+1)
        newnumarr.unshift(oneLetter);
    }
    return newnumarr;
}

  두 가지 문제가 있었다. 하나는 문자가 원하는 것 보다 하나 더 들어갔고, 기댓값은 문자가 아닌 숫자였다. 첫번째 문제는 i<=string.length에 -1을 해주면 해결될 것 같다. 두 번째 문제는 slice 한 문자를 숫자로 바꾼 후 unshift로 넣어주면 될 것 같다. 

 

세번째 코드

function solution(n) {
    let num = n
    let string = num.toString(); //"12345"
    let newnumarr = [];
    for(let i=0; i<=string.length-1; i++){
        let oneLetter = string.slice(i,i+1)
        let newnum = Number(oneLetter)
        newnumarr.unshift(newnum);
    }
    return newnumarr;
}

잘 작동한다. 그런데 let num = n을 선언하지 않고 바로 n을 넣어도 될까? 어차피 매개변수니까 될 것 같기도 하고, 알쏭달쏭하다. 한번 시도해 봤다. 

 

정답 코드

function solution(n) {
    let string = n.toString(); //"12345"
    let newnumarr = [];
    for(let i=0; i<=string.length-1; i++){
        let oneLetter = string.slice(i,i+1)
        let newnum = Number(oneLetter)
        newnumarr.unshift(newnum);
    }
    return newnumarr;
}

다행히 잘 작동한다. 

 

오늘은 이상하게도 머릿속에서 for, slice, 빈 배열 선언, toString 등의 방법이 떠올랐다. 조금은 익숙해져서 배운 도구들을 써먹을 줄 알게 된 걸까? 어제 장장 7시간동안 튜터님들과 함께 개인 과제를 한 보람이 있는 것 같다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함