728x90
🔥 Programmers Lv.1 : 자연수 뒤집어 배열로 만들기
🔍 문제 : " 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. "
📎 조건 :
∙ n은 10,000,000,000이하인 자연수입니다.
∙ n은 10,000,000,000이하인 자연수입니다.
👉🏻 My answer
function solution(n) {
let answer =[];
let arr = String(n).split("").reverse();
for (let i = 0; i < arr.length; i++) {
answer.push(Number(arr[i]));
}
return answer;
}
01. [5,4,3,2,1]이 나오게 하기 위해서 배열로 바꾼 뒤 숫자를 문자열로 변화하여 split메서드를 통해 나누어줍니다.
02. 12345에서 ["1","2","3","4","5"]가 되며 역으로 배열되어야 하므로 reverse메서드를 통해 배열을 역방향으로 바꿔줍니다.
03. for문을 돌려 배열 길이만큼 반복할 때 push를 통해 숫자로 변환한 arr배열의 값을 answer값에 넣어줍니다.
02. 12345에서 ["1","2","3","4","5"]가 되며 역으로 배열되어야 하므로 reverse메서드를 통해 배열을 역방향으로 바꿔줍니다.
03. for문을 돌려 배열 길이만큼 반복할 때 push를 통해 숫자로 변환한 arr배열의 값을 answer값에 넣어줍니다.
👉🏻 Another ways
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;
}
: 이게 바로 발상의 전환인가 hoxy...
: 10으로 나누어 소수점을 만들어 소수점 뒤에 값을 배열로 가져오는 방식입니다.
: 즉, 10으로 값을 나누어 소수점 뒷자리는 배열에 넣고 버림으로써 결국 뒤부터 배열에 넣는 셈이 되니 revers()메서드와 같습니다.
: 10으로 나누어 소수점을 만들어 소수점 뒤에 값을 배열로 가져오는 방식입니다.
: 즉, 10으로 값을 나누어 소수점 뒷자리는 배열에 넣고 버림으로써 결국 뒤부터 배열에 넣는 셈이 되니 revers()메서드와 같습니다.
function solution(n) {
return n.toString().split('').reverse().map(o => o = parseInt(o));
}
: 깔끔 그 잡채~
'알고리즘 도장깨기' 카테고리의 다른 글
프로그래머스 Lv.1 "수박수박수박수박수박수?" (2) | 2022.11.04 |
---|---|
프로그래머스 Lv.1 "서울에서 김서방 찾기" (3) | 2022.11.02 |
프로그래머스 Lv.1 "자릿수 더하기" (2) | 2022.11.01 |
프로그래머스 Lv.1 "약수의 합" (2) | 2022.10.30 |
프로그래머스 Lv.1 "나머지가 1이 되는 수 찾기" (2) | 2022.10.30 |
댓글