항해 프로그래머스
(해설있음)항해3주차 자바스크립트 프로그래머스 - 자연수 뒤집어 배열로 만들기
완두노예
2023. 1. 30. 19:43
등록한 풀이
function solution(n) {
// 들어온 자연수를 문자열로 변환하고 12345 -> "12345"
// 변환된 문자열을 배열로 만들어준다. "12345" -> ["1", "2", "3", "4", "5"]
const strArr = n.toString().split("");
// 배열을 뒤집어준다. ["1", "2", "3", "4", "5"] -> ["5", "4", "3", "2", "1"]
const reverseArr = strArr.reverse();
// 배열안의 각 문자 값을 숫자로 변형시켜 주고 반환해준다.
// ["5", "4", "3", "2", "1"] -> [5, 4, 3, 2, 1]
return reverseArr.map((n) => parseInt(n, 10));
}
console.log(solution(12345)); // [5, 4, 3, 2, 1]
다른 풀이
function solution(n) {
var arr = n.toString().split('');
var answer = [];
for(var i=arr.length-1; i>=0; i--){
answer.push(Number(arr[i]));
}
return answer;
}
Q 왜 toString을 썼을까. split를 안쓰면 12345를 '만이천삼백사십오' 로 받아들이게 되는건가?
A 상단 코드 보고 이해함. 왜 문자열로 바꾸었는지도!
Q for 문 왜 i=arr.length-1 '에서 -1'은 뭘까, i--이거는 그 뭐라고하더라
A
function solution(n) {
// 문자풀이
// return (n+"").split("").reverse().map(v => parseInt(v));
// 숫자풀이
var arr = [];
do {
arr.push(n%10);
n = Math.floor(n/10);
} while (n>0);
return arr;
}
function solution(n) {
return (n + '').split('').reverse().map(n => parseInt(n));
}
function solution(n) {
var answer = [];
n = n + "";
for (var i = n.length - 1; i >= 0; i--) {
answer.push(Number(n[i]));
}
return answer;
}
function solution(n) {
// 문자풀이
return (n+"").split("").reverse().map(v => parseInt(v));
// 숫자풀이
}
function solution(n) {
return (n+"").split("").reverse().map($=>+$);
}
function solution(n) {
let answer = (n + '').split('').reverse();
return answer.map(item => parseInt(item));
}
function solution(n) {
var nStr = n.toString();
var answer = [];
for( let i = nStr.length-1; i >= 0; i-- ) {
answer.push(Number(nStr[i]));
}
return answer;
}
function solution(n) {
var answer = [];
n += '';
for (var i = n.length - 1; i >= 0; i--) {
answer.push(+n[i]);
}
return answer;
}