꾸준하게
[JS코딩테스트] 자연수 뒤집어 배열로 만들기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12932
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[나의 풀이]
function solution(n) {
//1. 자연수n을 배열로 만들어주기
let array = (n+'').split('').map(x => Number(x));
//2. 배열 순서 뒤집기(reverse)
let reverse = array.reverse();
return reverse;
}
아직 Lv1이지만, 거의 매일같이 문제 하나씩 풀어보고 있는데,
갈수록 비슷한 문법을 활용하다 보니, 슬슬 풀이 방법이 익숙해지고 있다.
https://semoal24.tistory.com/44
[JS] Array - 배열 관련 정리
length Array.length; 배열의 길이 reduce Array.reduce((acc, curr) => 함수식, in) acc : 이전 curr을 함수식에 대입하여 받아낸 값. curr : 현재 input할 값. in : acc의 초기값 ex. 배열의 모든 요소를 더한 값 array.reduce((
semoal24.tistory.com
방금 푼 방법의 문법은 따로 정리해두었다.
[다른 풀이]
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;
}
이 분은 문자풀이 방식과 숫자풀이 방식 두 가지로 풀었다.
문자풀이 방식은 내 방식과 유사한데, reverse를 map 앞에 두어 한 줄로 깔끔하게 풀어내었다.
그리고 문자배열을 숫자배열로 바꾸는 방식을 Number()가 아닌 parseInt()를 활용하였다.
그럼, 숫자풀이를 확인해보자.
//1. 빈 배열 선언
let arr = [];
do {
//2. 빈 배열에 1의 자리 수 추가 ( 12345%10 = 5이므로 )
arr.push(n%10);
//3. n의 1의 자리를 없애기 ( 12345 / 10 = 1234.5이고 이 수보다 같거나 작은 최대 정수 1234 )
n = Math.floor(n/10);
//4. n이 1의 자리가 될 때까지 반복
} while (n>0);
return arr;
* do ... while
do 함수 while 조건
조건이 false가 될 때까지 함수를 반복한다.
* math.floor(n)
숫자n보다 작거나 같은 정수 중 가장 큰 정수
'JS코딩테스트' 카테고리의 다른 글
[JS코딩테스트] 문자열을 정수로 바꾸기 (0) | 2023.04.11 |
---|---|
[JS코딩테스트] 정수 내림차순으로 배치하기 (0) | 2023.04.10 |
[JS코딩테스트] 정수 제곱근 판별 (0) | 2023.04.06 |
[JS코딩테스트] 나머지가 1이 되는 수 찾기 (0) | 2023.04.05 |
[JS코딩테스트] 문자열 내 p와 y의 개수 (0) | 2023.04.04 |