문제
https://leetcode.com/problems/reverse-integer/
문제요약
숫자가 주어지고 숫자 순서를 거꾸로 바꾼 숫자를 구하는 문제입니다. 1234가 주어지면 4321을 반환해야 합니다.
풀이
Stack 자료구조를 이용해 가장 나중에 들어온 숫자를 먼저 내보내 새로운 숫자를 구성하면 됩니다.
풀이코드 1
Runtime 15ms | Memory 14.3MB
더 개선된 더 좋은 풀이를 발견해서 아래 작성합니다. 위 풀이 방식은 Stack 자료구조를 사용합니다. 이 자료구조는 숫자의 크기만큼 공간을 쓰게 됩니다. 또한 String과 Int와의 전환이 많습니다. 여기서도 Context Switching 이나 Swift의 Unicode로 이루어진 String 특징때문에 성능이 저하됩니다.
사칙연산을 이용하는 것만으로 이 문제를 해결할 수 있습니다. 나누기를 통해 몫과 나머지를 이용해서 새로운 숫자를 만들어가면 됩니다. 이런 사고력을 가지기 위해서는 더 다양한 문제를 풀고 다양한 시각에서 접근해야할 것 같습니다. 😯
풀이코드 2
Runtime 9ms | Memory 13.4MB
'Algorithm' 카테고리의 다른 글
[leetcode] 3sum (swift) (0) | 2022.12.24 |
---|---|
[leetcode] Container With Most Water (swift) (0) | 2022.12.22 |
[leetcode] Zigzag Conversion (swift) (0) | 2022.12.20 |
[leetcode] Longest Palindromic Substring (swift) (0) | 2022.12.19 |
[leetcode] Longest Substring Without Repeating Characters (swift) (0) | 2022.12.18 |