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

  • 최근 글

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

티스토리툴바