본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 91 - 자연수 뒤집어 배열로 만들기)

728x90
# 문제

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



# 답안 

// 1. 입력: 자연수 n
// 2. 출력: 각 자리 숫자를 원소로 가지는 배열 형태


// < 1번 방법 >
// answer = []
// n을 문자열로 만들고 ex."12345"
// for문 돌릴건데 하나씩 숫자로 바꿔서 answer에 push 

function solution(n) {
    let answer = [];
    let str = String(n);
    for(let i=str.length-1; i>=0; i--){
        answer.push(Number(str[i]))
    }
    return answer;
}



// < 2번 방법 >
// n을 문자열로 만들고, split('')으로 쪼개서 배열로 만들고, reverse로 뒤집기
// map 돌려서 문자열 하나하나를 숫자로 만들기

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

 

 

 String(n)n.toString()의 차이점 

String(n)과 n.toString()은 기본적으로 같은 결과를 반환하지만, 몇 가지 상황에서는 차이가 있을 수 있다.

  1. n이 null 또는 undefined인 경우:
    • String(n)은 "null" 또는 "undefined"와 같은 문자열을 반환
    • n.toString()은 TypeError를 발생시킴
  2. n이 숫자 타입이 아닌 경우:
    • String(n)은 n을 해당 문자열로 변환
    • n.toString()은 TypeError를 발생시킴
  3. 객체의 경우:
    • String(n)은 n.toString()을 호출
    • n.toString()은 해당 객체의 문자열 표현을 반환

일반적으로는 String(n)을 사용하는 것이 더 안전하다. 만약 n이 null 또는 undefined인 경우에도 예외가 발생하지 않기 때문이다.

 

 
 

 

 
 
728x90