Top Interview Questions
Easy Collection
LEVEL : 🌕 🌑 🌑 🌑 🌑 (최하)
Easy Collection String의 첫번째 문제인 Reverse String
를 풀어봤습니다.
벌써 Array
가 끝났네요.
Reverse String
문제는 매우 쉬웠습니다. 말 그대로 String를 Reverse
시키는 겁니다.
제가 첫번째로 풀었던 코드는 고작 한 줄 밖에 되지않아요..
그럼 Reverse String
를 코드와 함께 풀어보겠습니다.
아마 알고리즘을 해보신 분들이라면 제목을 보자마자 "이걸 써야겠다" 싶을 거예요.
제목 그대로 Reverse
를 쓰는 겁니다.
func reverseString(_ s: inout [Character]) {
s.reverse()
}
끝났습니다. 이게 다입니다.
reverse()
라는 함수는 주어진 배열을 완전 반대로 알아서 뒤집어 줍니다.
Runtime은 적당히 나온 거 같아요.
2번째 방식은 가장 Runtime이 빨랐던 코드를 가져왔습니다.
배열의 대칭되는 부분에 있는 숫자들을 바꿔주는 코드였어요.
어차피 대칭되는 위치에 있는 숫자들을 사용할 생각이어서 middle
를 놓았습니다. for문으로 전체 숫자를 보지 않아도 되기 때문에 middle
를 두는 편이 더 효과적입니다.
그리고 temp를 둬서 두 숫자의 위치를 바꿔줬습니다.
전형적인 swap 로직이었어요.
func reverseString(_ s: inout [Character]) {
let middle = Int(s.count / 2)
for index in 0..<middle {
let temp = s[index]
s[index] = s[s.count - index - 1]
s[s.count - index - 1] = temp
}
}
분명히 더 빠른 코드였는데, 제가 돌리니깐 1번 방식보다 느리게 나왔습니다.
Leetcode가 돌리면서 계속 차이가 있는 거 같아요..!