티스토리 뷰

코딩테스트

Lv.0 swift 접미사 배열

알롱도담쓰 2024. 3. 23. 21:14

문제 설명

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.

제한 조건

my_string은 알파벳 소문자로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 100

내 답안

import Foundation

func solution(_ my_string:String) -> [String] {
    var result = [String]()
    
    for i in 1...my_string.count {
        result.append(String(my_string.suffix(i)))
    }
    
    return result.sorted(by: < )
}

접근 방법

다른 풀이

func solution(_ myString: String) -> [String] { myString.indices.map { String(myString[$0...]) }.sorted() }

 

myString.indices 로 인덱스를 구하고

각 인덱스를 순회하면서

해당 인덱스부터 마지막 요소로 배열을 만들고

그 배열의 정렬을 함

 

알게 된 것

suffix를 사용한다면 이런 느낌이 될 거 가음!

indices를 써서 인덱스만 사용한게 좋았다 = for 으로 count 순회하는 거랑 같은 거지

    my_string.indices.map { String(my_string.suffix(from: $0)) }.sorted()

 

'코딩테스트' 카테고리의 다른 글

Lv.0 swift 세로 읽기  (0) 2024.03.24
Lv.0 swift 배열 만들기 3  (0) 2024.03.23
Lv.0 swift 수 조작하기2  (0) 2024.03.23
Lv.0 부분 문자열 이어 붙여 문자열 만들기  (0) 2024.03.22
Lv.0 swift 0 떼기  (1) 2024.03.22
최근에 올라온 글