<문제>
reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321
간단한 문제인것 같지만 나에게는 너무나도 어려운 코드구현...
끙끙앓아가면서 고민했을때 답이 잘 안나오다가 집에와서 다시금 마음을 다잡고
코드를 작성해봤다.. 아마 깔끔하지는 않은 코드같은데 좋은추가코드가 있으면
그때그때 확인해서 코드카타2일차.push(좋은추가코드)
해야겠다.
컴퓨터적 사고로 순차적으로 생각하면...
1. 숫자를 문자로 변환
2. 문자를 split하여 배열로 변환
3. reverse 메소드를 사용하여 배열을 뒤집는다
➡️ (이때 조건2개를 위하여 이걸 중심 변수로 할당한다.)
const reverse = x =>{
let arrReverse = x.toString().split("").reverse();
let result;
if(arrReverse[0] == 0){
arrReverse.shift()
result= arrReverse.join("");
} else if(arrReverse[arrReverse.length-1] == '-' ){
arrReverse.pop()
arrReverse.unshift('-');
result = arrReverse.join("");
}else{
result = arrReverse.join("")
}
return result
}
코드가 지저분한것 같네... 에휴...😭
const reverse = x => {
let str = x.toString();
const arr = [];
const reverseArr = [];
for (let i = 0; i < str.length; i++) {
arr.push(str[i]);
}
if (arr[0] === '-') {
for (let i = 1; i < arr.length; i++) {
reverseArr.unshift(arr[i]);
}
const newReverse = reverseArr.toString().replace(/,/g, '');
return -Number(newReverse);
}
else {
for (let i = 0; i < arr.length; i++) {
reverseArr.unshift(arr[i]);
}
const newReverse = reverseArr.toString().replace(/,/g, '');
return Number(newReverse);
}
}
const reverse = x => {
const result = (x + '').split('')
result.reverse()
for (let i = result.length-1; i >= 0; i--) {
if (result[i] == 0) {
return result.splice(i,1)
console.log(result)
}
else if (result[i] === '-') {
return result.unshift(i)
console.log(result, "abc")
}
}
}
// return result.join("")
// console.log(result)
// }
// else if (result[i] < 0) {
// result[i]
// }
// }
// let str = result.join("")
// return str
console.log(reverse(-1234));
module.exports = { reverse };