문제 해결 과정
이 문제에 대한 내 계획은 pat의 마지막 원소의 위치를 찾아서, 처음부터 pat의 마지막 원소까지 출력하기였다.
그래서 suffix로 마지막 원소를 찾았고, 처음부터 pat까지 출력하면 되는데...
이거 풀때는 Swift 문자열 다루는 방법을 전혀 모르는 상태라 아래와 같은 코드로 도전해봤다.
참고로 블로그 옮기는 중이다..
let end = pat.suffix(1)
let lastIndex = myString.lastIndex(of: end)
return myString[0...lastIndex]
error: cannot convert value of type 'String.SubSequence' (aka 'Substring') to expected argument type 'String.Element' (aka 'Character')
나의 풀이
func solution(_ myString:String, _ pat:String) -> String {
let end = Character(String(pat.suffix(1)))
if let lastIndex = myString.lastIndex(of: end) {
let idx = myString.distance(from: myString.startIndex, to: lastIndex)
let res = myString.prefix(idx+1)
return String(res)
}
return ""
}
우선 lastIndex(of:)를 사용하기 위해 String.SubSequence인 end값을 Character로 변환해주었다.
그리고 distance(from:to:)는 from과 to의 거리를 리턴해주는데 이걸 사용해서 거리를 구하고
prefix + 1을 통해 결과를 도출해냈다. prefix + 1을 한 이유는 prefix는 문자열의 길이만큼만 가져오기 때문이다.
'Algorithm > Swift' 카테고리의 다른 글
[Swift] 구름 - 1차원 뿌요뿌요 (0) | 2024.07.03 |
---|---|
[Swift] 백준 12933 - 오리 (0) | 2024.06.20 |