728x90
반응형
References
아래 링크의 강의 중 Section 5. Integer Reversal
의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy
Solution 1. my solution
function reverseInt(n) {
let reversed = String(n).split("").reverse();
if (reversed[reversed.length - 1] === "-") {
reversed.pop();// reversed = ["5", "1"]
reversed = reversed.join("");
return Number(reversed) - Number(reversed) * 2;
} else {
reversed = reversed.join("");
return Number(reversed);
}
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
- 입력값
n
을 문자열로 변환하여 역순으로 정렬한 배열로 만든 다음 변수reversed
에 저장. - 음수를 판별하기 위해 배열
reversed
의 마지막 값이"-"
라면pop()
으로 마지막 값"-"
을reversed
에서 덜어내고 숫자로 만든reversed
의 2배만큼을reversed
에서 빼준 값을 반환. - 양수라면
join()
으로 배열reversed
를 합쳐서 그 값을 반환.
Solution 2. with if
function reverseInt(n) {
const reversed = n.toString().split("").reverse().join("");
if (n < 0) {
return parseInt(reversed) * -1;
}
return parseInt(reversed);
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
- 입력값
n
을 문자열로 변환하여 역순으로 정렬한 다음 상수reversed
에 저장. - 입력값
n
이0
보다 작다면 출력값을 음수로 만들기 위해parseInt(reversed)
에-1
을 곱하여 반환. - 양수일 경우
parseInt(reversed)
로 정수값을 출력.
Solution 3. with Math.sign()
function reverseInt(n) {
const reversed = n.toString().split("").reverse().join("");
return parseInt(reversed) * Math.sign(n);
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
- 입력값
n
을 문자열로 변환하여 역순으로 정렬한 다음 상수reversed
에 저장. Math.sign()
을 활용하여 입력값n
이 음수라면-1
, 양수라면1
을parseInt(reversed)
에 곱하여 결과값 반환.
Math.sign()
Math.sign(x)
Parametersx
: 기본적으로 숫자가 들어가나, 숫자가 아닐 경우 자동으로 숫자로 변환하여 입력됨.
반환값argument 양수
: 1
argument 음수
: -1
argument 0
: 0
argument -0
: -0
그 이외엔 NaN
을 반환.
함께 보기
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
fizzBuzz (0) | 2022.04.04 |
---|---|
문자열 내 최빈값 구하기(MaxChars) (0) | 2022.04.04 |
회문(Palindromes) (0) | 2022.04.04 |
문자열 뒤집기(String Reversal) (0) | 2022.04.04 |
이진 탐색(Binary Search) (0) | 2022.04.04 |
댓글