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

김형준·2023년 5월 31일
0

코딩문제

목록 보기
1/9
post-thumbnail

공부요소
-String.index
-Sorted
-Array / String.index
Swift의 문자열 보관이 가변적이여서 string.index를 만듬


func solution(_ strings:[String], _ n:Int) -> [String] {


    String.index 활용 방법
     1. sun의 "u"에 접근하고 싶다
     2. 인덱스를 활용한다
     3. strings[0]은 sun, strings[1]은 bed
     4. string[0] 이건 배열 접근
     5. string[0] index 접근해야함
     6. string[0].index(string[0].startIndex)  - sun 에서 s 에 접근
     7. 만약 u 에 접근하고싶다면 string[0].index(string[0].startIndex, offsetBy:1)
     8. 여기서부터 핵심임. 먼저 변수에 담아줌 var a =  string[0].index(string[0].startIndex, offsetBy:1)
     9. 이때 a  타입은 Sring.index임, 하지만 나는 "u" 라는 a : Character 타입으로 값을 원함
     10. 제일 핵심 var b = string[0][a] 설정해줘야함
     
    문자열 String.index를 활용해서 비교하려 했찌만... 너무 어렵다 실패
    그래도 String.index 관련 자료를 많이 봐서 괜춘...
    
    var index1 = strings[1].index(strings[1].startIndex, offsetBy: n)
  //  string[1] 이든, string[0] 이든 노상관임. 왜?
  //  아래 sorting1에서 $0이 어차피 string[0], string[1]일테니까? 
  
 *문제풀이*
  
    let a112 = strings.sorted { $0 < $1 }
    
    let sorting1 = strings.sorted { if $0[index1] == $1[index1] { return $0 < $1}
        else {return $0[index1] < $1[index1]} }

    

        return sorting1  
}


마지막 꿀팁
String.index -> 배열로 바꾸면 편하다 ~.~

func solution(_ strings:[String], _ n:Int) -> [String] {
   return strings.sorted{  Array($0)[n] == Array($1)[n] ? $0 < $1 :  Array($0)[n] < Array($1)[n] }
}
profile
기억보단 기록, 느리더라도 꾸준히

0개의 댓글