문제해결에 for문을 최대한 안쓰는 방향으로 생각해야하는데
한 번 더 생각해봅시당~..
문제해결
function solution(n) {
const answer = [];
const strArray = [...n.toString()].reverse();
for (const item of strArray){
answer.push(+item);
}
return answer;
}
1. n정수를 받아와 [] 배열에 담아준다. 이때 toString()을 사용해 타입변환을 해준다.
2. 그리고 reverse()를 이용해 배열은 뒤집어준다.
3. for of문을 써서 strArray를 하나씩 가져와 answer배열에 push해준다.
4. 이때 하나씩 가져온 item은 string타입이므로 +를 붙여 number로 타입변환을 해준다.
개선점
1. 타입변환을 하지 않는 쪽으로 생각해야한다. 캐스팅 런타임 비용때문
function solution(n) {
const answer = [];
do{
answer.push(n%10);
n = Math.floor(n/10);
}
while (n>0);
return answer;
}
// 받아온 숫자 n을 10으로 나눈 나머지를 answer배열에 푸쉬해준다.
// 다시 n을 10으로 나눈 몫을 Math.floor를 해준다.(소수점 이하는 버림)
// n이 0보다 크다면 do{} 를 반복한다
2. for문을 지양한다.
function solution(n) {
return n.toString().split("").reverse().map(s=>(+s))
}
'알고리즘 > 문제를 풀어보쟈' 카테고리의 다른 글
서울에서 김씨 찾기... (0) | 2022.03.25 |
---|---|
약수를 더해보자! (0) | 2022.03.17 |
이상한문자를 만들어보자 (0) | 2022.03.17 |
배열을 비교해 중복제거하기 (0) | 2022.03.15 |
정수 내림차순으로 정렬하기 (0) | 2022.03.10 |