Swift

[Swift] 문자열 뒤집는 방법

띵지니어 2023. 10. 13. 00:31

이번 글에서는 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()