프로그래머스 (Swift)/lv 1

[lv1] 문자열 내 마음대로 정렬하기

은더기 2024. 10. 13. 16:21

문제

 

내 정답 코드

func solution(_ strings:[String], _ n:Int) -> [String] {
    var strings = strings
    
    strings.sort(by: {
        let firstIndex = $0.index($0.startIndex, offsetBy: n)
        let secondIndex = $1.index($1.startIndex, offsetBy: n)
        
        if $0[firstIndex] == $1[secondIndex] {
            return $0 < $1
        } else {
            return $0[firstIndex] < $1[secondIndex]
        }
    })
    
    return strings
}

 

#

1. sort의 클로저를 구성하여 해결한다.

2. n만큼의 문자의 인덱스를 계산한다.

3. 해당 인덱스의 문자를 가져온다. ($0과 $1)

4. 문자가 같으면 전체 문자로 정렬하고

5. 문자가 다르면, 해당 문자로 정렬한다.


배운 기술