Palindrome 문제.
주어진 int형 정수가 Palindrome인지를 판별하면 된다.
Palindrome이 무엇인가, 예제를 보면 바로 알 수 있다.
121은 뒤집어도 121이다. 그럼 이 정수는 Palindrome이다.
오디오나 일요일, 내 이름은 이효리, 거꾸로 해도 이효리 그런 느낌.
내가 푼 방법
대학교 알고리즘 수강시간에 스택으로 배웠던 게 바로 생각났는데, swift니까.. 그냥 있는 메서드를 써보자! 싶었다.
그래서 생각해 냈던 건
1. Int로 들어오는 정수를 String으로 변경하고
2. String으로 변경된 값을 reversed로 뒤집은 다음에
3. 그 뒤집은 수를 Int로 변경해서 기존에 받는 수랑 비교한다.
class Solution {
func isPalindrome(_ x: Int) -> Bool {
let stringX: String = String(x)
let reversedX: [Character] = String(x).reversed()
let result = stringX == String(reversedX)
return result
}
}
세 줄 정도로 로직을 짜고 return 하는 메서드를 만들었다. Accept가 떴다.
근데 생각보다 메모리가 큰 편이었다.. 다른 사람들 꺼 보니까 일단 음수에서 바로 false 때리고 String 내장 메서드를 사용하지 않았더라.
어떻게 그렇게 구현하시는지 놀라울 따름..
심지어 같은 코드를 실행시키면 Runtime 시간이 들쑥날쑥하다. 최적화를 위해서는 다른 분들 코드 보면서 스타일도 익혀둬야겠다.
반응형
'Algorithm' 카테고리의 다른 글
Swift로 Leet Code 문제 풀기 - 21. Merge Two Sorted Lists (Easy) (0) | 2022.06.27 |
---|---|
Swift로 Leet Code 문제 풀기 - 14. Longest Common Prefix (Easy) (0) | 2022.02.18 |
Swift로 Leet Code 문제 풀기 - 13. Roman to Integer (Easy) (0) | 2022.02.13 |
Swift로 Leet Code 문제 풀기 - 1. Two Sum (Easy) (0) | 2022.02.04 |
[iOS] Swift 알고리즘 문제 풀기 - input 입력 받기 (0) | 2022.01.28 |