Swift랑 친해지기/programmers 풀기

[프로그래머스] 문자열 내 마음대로 정렬하기 (Swift)

데브킹덕 2022. 9. 25. 17:59

https://school.programmers.co.kr/learn/courses/30/lessons/12915

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

내풀이방법

 

1. map메서드와 for in 반복문을 이용해

strings 배열에 있는 단어의 알파벳을 stringsArray라는 배열에 값에 넣음

 

 

2.stringWord라는 문자열에 stringsArray[n]을 추가한뒤 for in 반복문을 이용하여 stringArray를 차례로 추가함

 

n이 1일경우 

["sun"] -> ["s","u","n"] ->  ["u","s","u","n"] -> usun 문자열이 됨 

 

3. 이문자들을 sortedStringArray 배열에 추가 하고 .sorted 메서드를 이용해 오름차순으로 정렬함

 

4. 다시 추가한 n번째 문자를 제거 해주기 위해

sortedStringArray[i]를 매핑하여 stringArray에 저장하고 

remove 메서드를 이용해 0번째 인덱스를 제거함

 

이후 stringWord 문자열에 추가한뒤 result에 append메서드를 통해 추가하고 반환하였음

 

 

내 코드 

 

 

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

    for i in 0..<strings.count{
        let stringsArray = strings[i].map({String($0)})
        var stringWord = ""
        stringWord += stringsArray[n]
        for j in 0..<stringsArray.count{
            stringWord += stringsArray[j]
        }
        sortedStringArray.append(stringWord)
    }
    sortedStringArray = sortedStringArray.sorted(by: <)
    
    for i in 0..<sortedStringArray.count{
        var stringArray = sortedStringArray[i].map({String($0)})
        stringArray.remove(at: 0)
        var stringWord = ""
        for j in 0..<stringArray.count{
            stringWord += stringArray[j]
        }
        result.append(stringWord)
    }
    return result
}