문제 링크 : https://leetcode.com/problems/reverse-integer/
난이도 : Easy
문제 풀이 :
주어진 숫자를 거꾸로 뒤집는 문제이다.
10으로 나눈 나머지를 계속하여 자릿수를 만들면서 더해주면 뒤집을 수 있다.
다만 주의할 점은 32-bit signed integer를 사용한다는 부분이다. 이 Integer의 범위를 넘어간 값은 0을 반환해야 한다.
그래서 결과값이 이 범위를 넘어가는지 안넘어가는지 체크하기 위해 Long 자료형을 사용해야 한다.
소스 코드 :
class ReverseInteger {
fun reverse(x: Int): Int {
var answer: Long = 0
var num = x
while(num != 0) {
answer = answer * 10 + (num % 10)
num /= 10
}
if(answer > Integer.MAX_VALUE || answer < Integer.MIN_VALUE) {
return 0
}
return answer.toInt()
}
}
후기 :
처음 문제의 32-bit signed integer에 대한 내용을 읽지 않아서 틀렸다는 결과를 받았다.
문제를 보자마자 자주 풀었던 유형이고 쉽다고 생각하여 바로 접근한 것이 화근이었다.
문제부터 다 읽고 조건이나 예외 사항을 파악하는 습관이 필요할 것 같다.
반응형
'Algorithm > Leetcode' 카테고리의 다른 글
LeetCode - Merge Two Sorted Lists (0) | 2020.07.30 |
---|---|
LeetCode - Valid Parentheses (0) | 2020.06.27 |
LeetCode - Longest Common Prefix (0) | 2020.06.27 |
LeetCode - Roman to Integer (0) | 2020.06.27 |
LeetCode - Two Sum (0) | 2020.06.27 |