프로그래머스)자연수 뒤집어 배열로 만들기

minji jeon·2022년 7월 18일
0

알고리즘

목록 보기
19/29
post-thumbnail

1. 문제

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

2. 접근

우선 자연수를 뒤집을려면 또 쪼개야 한다.
그럴려면 tostring과 split을 사용하면 되고,
뒤집을려면 배열을 뒤집을 수 있는 함수가 있을것이다.
구글링을 하니 reverse라는 함수가 나온다.
그래 그러면 reverse함수를 써보자!

reverse 메서드는 호출한 배열을 반전하고 원본 배열을 변형하며 그 참조를 반환합니다.

하니면 반복문을 사용하면 뒤에서부터 출력하는 방법도 있다.

3.내답

다양한 방법을 시도해보았다.

  • for문으로 뒤집어서 출력하기
function solution(n) {
    var reverse = [];
   let result = n.toString()
for (let i = result.length-1; i >= 0; i-- ){
        reverse.push(Number(result[i]))
}  return reverse
}

for문이 도는 순서를 반대로 하여 하나씩 새로운 배열에 push 해주었다.

  • reverse() 함수
function solution(n) {
 
    let result = n.toString().split("").reverse()   //["5","4","3","2","1"]
       result.forEach(x => x * 1)    //문자 * 숫자 = 숫자  --> 이럴바엔 넘버쓰ㅡ지....;;
       }
          return result
       
       } 

이건 약간 헛짓거리 같은 느낌이 난다.
문자로 바꾸고, 배열로바꾼뒤, 리버스함수로 배열을 뒤집어 준다.
여기서 끝이 아니다. 요소 하나하나가 string형태이기 때문에 요소에 1을 곱해서 number의 형태로 바꿔주었다.

  • 스프레드문법 사용하기
 function solution(n) {
        let arr= n.toString()
        return  [...n].reverse()  ///숫자는 넣을수 없다. 
       } 
     ```  

 reverse함수는 array 메서드이며, 숫자는 넣을수가 없다.
 따라서 스프레드 문법을 사용하여 문자열의 arr를 []안에 넣어줬다. 
 
 
  > spread 라는 단어가 가지고 있는 의미는 펼치다, 퍼뜨리다 입니다. 
  이 문법을 사용하면, 객체 혹은 배열을 펼칠수있습니다.
  ex ) [...animals, '비둘기'];

이렇게 스프레드 문법을 알면 배열을 자기맘대로 합칠수가 있다. 

* map사용 
```js
function solution(n) {
    let result = n.toString().split("").reverse().map((x)=>{ x *1})  
    return result
       } 

이렇게 하면 한줄에 끝낼 수 도 있다.

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글