본문 바로가기

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

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

문제

 

내 정답 코드

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. 문자가 다르면, 해당 문자로 정렬한다.


배운 기술

'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글

[lv1] K번째 수  (0) 2024.10.20
제일 작은 수 제거하기  (0) 2024.10.16
[lv1] 최대공약수와 최소공배수  (0) 2024.10.10
[lv1] 직사각형 별찍기  (0) 2024.10.08
[lv1] 하샤드 수  (0) 2024.10.02