반응형
이번 글에서는 Swift 문법에서 문자열을 뒤집는 방법을 알아 보겠습니다.
예제로 프로그래머스 문제를 가져왔습니다.
[프로그래머스] 문자열 뒤집기 참고 (더보기 클릭!)
내 코드
import Foundation
func solution(_ myString:String) -> String {
return String(myString.reversed())
}
Review
처음에는 문자열을 배열에 넣어서 for을 통해 하나씩 붙여 나가는 코드를 짰는데
파이썬의 myString[::-1]처럼 좀 더 쉬운 문법이 있을 거라고 생각해서 찾아봤더니 myString.reversed() 이게 있었다!
Swift는 기초 문제부터 풀지만, 하나씩 알아가는 게 재밌었습니다.
🧑🏻💻 문자열 뒤집는 방법
1. 제일 간단한 방법
reversed() 사용하기
import Foundation
var str: String = "hello"
print(String(str.reversed())) // olleh
String으로 감싸준 이유는
타입이 ReversedCollection<String>(_base: "hello") 이기 때문에 한번 감싸줘야 저희가 원하는 String으로 리턴할 수 있습니다.
2. reversed() 사용 안하고 문자열을 배열로 고치고 배열을 거꾸로 결과에 붙히기
import Foundation
var str:String = "hello"
var result = ""
let answer = str.map { $0 }
for i in stride(from: answer.count-1, to: -1, by: -1) {
result.append(answer[i])
}
print(result) // olleh
참고로 이 방법은 문자열을 배열로 바꾸는 축약 문법입니다.
answer = str.map { $0 } // "hello" -> ["h", "e", "l", "l", "o"]
이외에도 무수한 방법이 있지만 애플 공식 문서에서 reversed()의 시간 복잡도는 O(1) 이기 때문에
문자열을 뒤집을 때는 1번 방법을 사용하는 게 더 쉽고 효율도 좋습니다.
참고 : 애플 공식 문서 reversed()
반응형
'Swift' 카테고리의 다른 글
[Swift] Optional Unwrapping (3) - 닐 코얼레싱 (Nil-Coalescing) (0) | 2024.01.18 |
---|---|
[Swift] Optional Unwrapping (2) - 옵셔널 바인딩 (Optional Binding) if let , guard let (1) | 2024.01.15 |
[Swift] Optional Unwrapping (1) - 강제 추출 (Forced Unwrapping) (2) | 2024.01.11 |
[Swift] Optional 개념 알아 보기, nil 정의 (4) | 2024.01.08 |
[Swift] 변수와 상수, 타입(Type), 타입 어노테이션, 타입 추론 (0) | 2023.07.05 |