-
JavaScript:: 정수 뒤집어 return 하기알고리즘 2020. 7. 7. 13:50
< 문제 >
reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집에서 return 해주세요.
x : 숫자
return : 뒤집어진 숫자를 반환!
예를들어,
x : 1234
return : 4321
x : -1234
return : -4321
x : 1230
return : 321우리가 함수를 통해 구현해야 할 것은 아래와 같다.
1. x가 숫자인 상태에서 수를 뒤집을 수 없으니 x를 문자열로 바꾸어 주어야 한다.
2. x 문자열의 각 요소를 분리하여 하나의 배열로 만든다.
3. 배열의 자리를 뒤집는다.
4. 만약 배열에 '-' 가 들어갈 경우, 배열을 뒤집었을 때 - 가 맨 뒤로 가기에 뒤에 있는 -를 빼주고 배열의 맨 앞에 -를 넣어준다.
5. 만약 배열 index 0번째 자리에 0이 올 경우, 배열 첫 자리를 생략해준다.
6. 결과값의 배열을 하나의 string으로 붙여주고, 숫자로 변환한다.
각 구현 방법은 아래와 같다.
1. x.toString()
2. x.split('')
3. x.reverse()
4. .pop() , .unshift();
if(string[string.lenth-1] === '-') { string.pop(); string.unshift('-'); }
5. .shift()
else if(string[0] === 0) { string.shift(); }
6. Number( .join(''));
완성 코드는 아래와 같다.
const reverse = x => { let string = x.toString().split("").reverse(); console.log(string); if(string[string.length-1] === '-') { string.pop(); string.unshift('-'); } else if(string[0] === 0) { string.shift(); } return Number(string.join('')); } reverse(12340);
또 다른 방법은 아래와 같다.
function reverse(x) { let minus = false; if (x < 0) { x *= -1; // -를 곱해주어서 양수로 만들기 minus = true; } let numText = x.toString(); let result = ''; for (let i = numText.length-1; i >= 0; i--) { result += numText[i]; } // 기존 수가 음수일 경우, 다시 -를 곱해서 음수로 만들어준다. result = minus ? result * -1 : Number(result); return result; }
'알고리즘' 카테고리의 다른 글
JavaScript:: 그래프의 최대 넓이 값 구하기 (0) 2020.07.17 Javascript:: 가장 자주 등장한 숫자를 k개수만큼 return (0) 2020.07.16 JavaScript :: twoSum 함수 (0) 2020.07.06