자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
n | return |
---|---|
12345 | [5,4,3,2,1] |
function solution(num) {
return (num + '').split('').reverse().map(e => parseInt(e));
}
console.log(solution(12345));
// [5, 4, 3, 2, 1]
console.log(solution(846984156));
// [6, 5, 1, 4, 8, 9, 6, 4, 8]
console.log(solution(684616846467248));
// [8, 4, 2, 7, 6, 4, 6, 4, 8, 6, 1, 6, 4, 8, 6]
로그 예시가 극단적이긴 하지만, 항상 코드를 짤땐 극단적인 인풋까지 염두하고 빌드해야한다고 들었다. 문자열을 분리하고, 뒤집어서 숫자로 다시 맵핑하는 쉬운 예제이지만, 문제를 잘 안읽고 멋대로 썼다가 정답률 7% 먹고 헤매였다. (+5점)
function solution(num) {
return (num + '').split('').sort().reverse().map(e => parseInt(e));
}
문자열을 뒤집으라고 했지 내림차순으로 만들라곤 안했는데..
function solution(num) {
const result = (num + '').split('').sort().reverse().map(e => parseInt(e));
const setResult = new Set(result);
return [...setResult];
}
문제를 제대로 안읽고 중복된 값을 제거해야하나 싶어서 Set으로 만들어도 보았다. 차근차근 문제를 읽는 독해 능력이 문제를 푸는 것만큼 중요하다는 것을 다시 한번 깨닫는 순간
function solution(n) {
// 숫자풀이
var arr = [];
do {
arr.push(n%10);
n = Math.floor(n/10);
} while (n>0);
return arr;
}
?? 세상에 이렇게 풀수도 있구나
12345 % 10 = 5
1234 % 10 = 4
123 % 10 = 3
12 % = 2
1 % = 1
정말 기발하고 언젠가 써먹을 데가 있을 것 같아 킵핑
다른 답변은 내 풀이와 비슷해서 생략