[swift] 튜플

코드는 Swift로 작성하였습니다.
제가 직접 작성한 코드라 최적의 코드가 아닐 수 있음을 알려드립니다. 🐹


문제는 저작권 관련 문제가 있을 수 있어서 적어두지 않았습니다.



✍🏻 생각정리

처음 든 생각 : 호오 어렵네 ? 저기서 어떻게 숫자만 뽑아낸담 ...
return되는 배열 안의 숫자 순서도 중요한듯한디...
-> 많이 나온 순서로 출력되고 있구나

  1. 잘 쪼갠다
  2. 숫자가 나온 횟수를 센다
  3. 횟수가 많은 순서대로 배열에 넣어서 return한다.


👩🏻‍💻 코드

import Foundation

func solution(_ s:String) -> [Int] {
    var result = [Int]()
    // } , { 기준으로 쪼갠다
    var new = s.components(separatedBy: ["}","{", ","])
    var myTuple: [String:Int] = [:]
    
    // Int로 바꿨을 때 nil이 아니라면 숫자라는 뜻
    // 숫자가 아닌데 해당 키에 값이 없다면 1 넣어주고 있다면 value에 1 더해준다.
    for i in new {
        if Int(i) != nil {
            myTuple[i] = myTuple[i] == nil ? 1 : myTuple[i]! + 1
        }
    }
    
    // value가 큰 순으로 정렬
    let newTuple = myTuple.sorted{$0.value > $1.value}
	
    // 앞에서부터 key값을 result 배열에 넣어준다.
    for i in newTuple {
        result.append(Int(i.key)!)
    }
    return result
}

잘 짜여진 코드인지는 모르겠다 ...ㅠ_ㅠ for문 도배 ...

좋은 웹페이지 즐겨찾기