[Javascript] 프로그래머스 Level1 _ 자연수 뒤집어 배열로 만들기
👇🏻
👇🏻
시행착오
( + 코드를 작성하면서든 생각들.)
1.
(15.4점이 나온 기적의 코드,,, 🤗)
최근에 비슷한 문제들이 많아서 풀던대로 풀었더니 통과는 되지만 테스트에서 제출이 안된다!!
처음엔 map() 함수 자체가 너무 어려워서 시도도 못해봤는데 ,, 이제는 좀 익숙해졌다고 한 번 써봤다...ㅎ
function solution(n) {
var answer = n.toString().split('')
answer.sort((a,b) => b-a);
return answer.map(el => parseInt(el));
}
2.
이번에는 반복문으로 풀었다.
숫자를 문자열로 변환한 후, 빈 배열에 문자열의 값을 뒤에서부터 대입했다.
그리고 반복문 내에서 정수로 변환한 후 배열을 리턴했다!
이렇게하면 통과가 된다.
function solution(n) {
var answer = [];
n = n.toString();
for(let i=0; i<n.length; i++){
answer[i] = parseInt(n[(n.length-1)-i]);
}
return answer;
}
3.
이번에는 toString() 대신 숫자 + "" 을 통해서 문자열을 만들어보려고 한다.
function solution(n) {
var answer = [];
n = (n+"").split("").reverse();
for(let i=0; i<n.length; i++){
answer[i] = parseInt(n[i]);
}
return answer;
}
4.
첫번째와 .sort()를 제외하고 모두 같은데 reverse()를 사용했더니 이건 통과가 된다. 이유가 뭐지?
function solution(n) {
//return (n+"").split("").reverse().map(el => parseInt(el));
var answer = n.toString().split('')
.reverse()
.map(el => parseInt(el));
return answer;
}
4.
정말 다른 분들의 풀이를 볼 때마다 탐난다....!
다들 어떻게 그런 생각을 하시는건지ㅎㅎㅎㅎ 그래서 하나 가져왔다.
문자열로 변환하지 않고 숫자 그대로 풀이하셨다.
%10 을 통해 나머지를 배열에 대입하고 10으로 나누고 Math.floor()를 통해 정수로 만들기를 반복하면서 계속해서 배열에 추가했다.
function solution(n) {
var answer = [];
do {
answer.push(n%10);
n = Math.floor(n/10);
} while (n>0);
return answer;
}
⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도 입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️
*** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ! ***
'Programmers > Level 1' 카테고리의 다른 글
[Javascript] 프로그래머스 : 문자열을 정수로 바꾸기 (0) | 2021.07.03 |
---|---|
[Javascript] 프로그래머스 : 문자열 다루기 기본 (0) | 2021.07.03 |
[Javascript] 프로그래머스 : 정수 내림차순으로 배치하기 (0) | 2021.07.02 |
[Javascript] 프로그래머스 : 행렬덧셈 (0) | 2021.07.01 |
[Javascript] 프로그래머스 : 최대공약수와 최소공배수 (0) | 2021.06.30 |