본문 바로가기

Algorithm

[leetcode] Reverse Integer (swift)

문제

https://leetcode.com/problems/reverse-integer/

 

Reverse Integer - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제요약

숫자가 주어지고 숫자 순서를 거꾸로 바꾼 숫자를 구하는 문제입니다. 1234가 주어지면 4321을 반환해야 합니다.

풀이

Stack 자료구조를 이용해 가장 나중에 들어온 숫자를 먼저 내보내 새로운 숫자를 구성하면 됩니다. 

풀이코드 1

Runtime 15ms | Memory 14.3MB

 

 

더 개선된 더 좋은 풀이를 발견해서 아래 작성합니다. 위 풀이 방식은 Stack 자료구조를 사용합니다. 이 자료구조는 숫자의 크기만큼 공간을 쓰게 됩니다. 또한 String과 Int와의 전환이 많습니다. 여기서도 Context Switching 이나 Swift의 Unicode로 이루어진 String 특징때문에 성능이 저하됩니다. 

 

사칙연산을 이용하는 것만으로 이 문제를 해결할 수 있습니다. 나누기를 통해 몫과 나머지를 이용해서 새로운 숫자를 만들어가면 됩니다. 이런 사고력을 가지기 위해서는 더 다양한 문제를 풀고 다양한 시각에서 접근해야할 것 같습니다. 😯

풀이코드 2

Runtime 9ms | Memory 13.4MB