알고리즘

[Programmars] 자연수 뒤집어 배열로 만들기 (JavaScript)

프린벼르 2022. 2. 1. 00:48

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

1. 나의 생각 흐름

앞에서 풀었던 문제들과 비슷한 유형의 문제였다. 우선 뒤집어야하니 reverse()를 써야한다는 생각을 했고 숫자를 배열로 만들어줘야 하니 앞에서 배운 문법을 쓰면 되겠다는 생각을 했다.

2. 내 코드

function solution(n) {
    let answer = [];
    let str = (n+'').split('').map(Number);
    answer = str.reverse();
    return answer;
}
< "숫자->문자"로 변환 후 배열로 만들기 : split이용 > 
타입이 숫자(number)인 경우 split을 사용할 수 없기 때문에 숫자에 ''을 더해 문자로 만들어주고, split('')을 사용하여
배열로 만들어 주는 방법!! ===> let arr = (n + '').split('').map(Number);
.map(Number)를 split 함수 뒤에 써주면 자동으로 문자=>숫자 바껴서 배열로 들어가게 됨! ★
** reverse() 함수 : 배열의 순서를 거꾸로 만들어 준다.

array.reverse()
이 함수를 호출한 배열을 거꾸로 뒤집고, 그 배열을 가리키는 참조값을 반환한다.
따라서, 이 함수를 실행시키면 원본 배열이 변형된다.

3. 다른 사람들의 코드

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

정말 간결하게 만든 코드 같다. 역시 map함수를 쓰면 간단해지는 마법이!

** map 함수 ( 예시와 사용법 ) 
const numbers = [1, 2, 3, 4, 5];
const result = numbers.map(number => number * number);

console.log(numbers);
// 결과값 [1, 2, 3, 4, 5];

console.log(result);
// 결과값 [1, 4, 9, 16, 25]​
const numbers = [1];
numbers.map((number, index, source) => { 
    // number: 요소값 
    // index: source에서 요소의 index 
    // source: 순회하는 대상 
    console.log(number); // 1 
    console.log(index); // 0 
    console.log(source); // [1] 
    return number * number; 
 });

 

4. 결론

map함수의 사용법도 잘 알아두자..!