[Algorithm] 002
문제
reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.
x: 숫자
return: 뒤집어진 숫자를 반환!
예들 들어,
x: 1234
return: 4321
x: -1234
return: -4321
x: 1230
return: 321
답
1
const reverse = x => {
let ary = [];
let s = String(x); // ['-1234']
let n = s.split(""); // ['-', '1', '2', '3', '4']
// -가 있는 경우
if (n.indexOf("-") > -1) {
for (let i = n.length - 1; i > 0; i-- ){ary.push(n[i]);}
ary.unshift('-');
let join = ary.join(''); // 배열 -> 문자열
let answer = Number(join); // 문자열 -> 숫자열
return answer;
}
// -가 없는경우
n.reverse();
let join2 = n.join('');
let answer2 = Number(join2);
return answer2;
}
인자에 -가 있는경우를 조건문으로 넣고 반복문으로 빈 배열에 거꾸로 push 한 후 배열 맨앞에 '-'를 집어넣고.. 배열을 문자열로 변환하고 문자열을 숫자열로 변환해서 리턴한다. -가 없는경우엔 split으로 만든 배열을 reverse해서 뒤집고, 문자열로 만들고 숫자열로 만들고 리턴한다. 메소드를 다 각자 변수에 선언, 할당 하다보니 변수가 많아지고 로직이 길어져서 복잡해진것같다.
2
const reverse = x => {
let a = String(x);
if (x > 0){
let answer = a.split('').reverse().join('');
return Number(answer);
} else {
let answer = a.substring(1).split('').reverse().join('');
return Number(answer *= -1)
}
}
다른분 코드 보고 수정한 코드. 먼저 음수인지 정수인지 확인해본다는 생각은 못했는데 역시 천재들밖에 없군... 그리고 이렇게 한 변수에 메소드를 여러개 때려박을수도 있다는것도 알게되었다! 🙄
Author And Source
이 문제에 관하여([Algorithm] 002), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyojeong0122/Algorithm-002-gq9mdj9y저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)