[Swift] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

2024. 6. 19. 20:26·Algorithm/Swift

 

문제 해결 과정

이 문제에 대한 내 계획은 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
'Algorithm/Swift' 카테고리의 다른 글
  • [Swift] 구름 - 1차원 뿌요뿌요
  • [Swift] 백준 12933 - 오리
🥭Mango
🥭Mango
  • 🥭Mango
    AppleMango🥭
    🥭Mango
  • 전체
    오늘
    어제
    • 분류 전체보기
      • iOS
        • Swift
        • SwiftUI
        • RxSwift
      • Algorithm
        • C
        • Python
        • Swift
      • Computer Science
        • 컴퓨터 네트워크
        • OS
      • ...
      • 개발 타임캡슐
        • Python
        • Flutter
        • Android
        • Kotlin
        • Java
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SwiftUI
    Code Base
    1613 파이썬
    토마토
    swiftUI tabview
    SwiftUI Apple Login
    14503 로봇청소기
    스택
    코틀린
    파이썬 14503
    백준 소수
    6118
    MapMarker
    백준 토마토
    코틀린 상속
    14503 파이썬
    파이썬 1459
    typing animation
    Custom Map Marker
    Swift Hello World!
    IOS
    파이썬 정렬
    파이썬
    파이썬 6118
    파이썬 토마토
    Apple Login
    역사 파이썬
    1차원 뿌요뿌요
    1613 역사
    swiftUI Gradients
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
🥭Mango
[Swift] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
상단으로

티스토리툴바