프로그래머스 2단계 문제. 생각보다 어렵지는 않다.
hash대신에 Dictionary를 사용해 풀었다. phone_book를 정리한 후 Dictionary에 삽입 후 순서대로 비교한다. 단 해당 번호는 Dictionary에서 삭제해야한다. 안그러면 무조건 false가 나온다.
import Foundation
extension String{
    func starstWith(var input : String)->Bool{
        if self == input.prefix(self.count) {
            return true
        }
        return false
    }
}
func solution(phone_book : [String])->Bool{
    var answer = true
    var list = phone_book.sorted()
    var phoneDictionaryList : [String:Int] = [:]
    for item in phone_book {
        phoneDictionaryList[item] = item.count
    }
    for item in phoneDictionaryList.keys{
        var number = item
        phoneDictionaryList[item] = nil
        for prime in phoneDictionaryList.keys {
            if prime.starstWith(var: number) {
                answer = false
                return answer
            }
        }
    }
    return answer
}원래는 자바로도 풀으려 했으나 remove를 사용할때 오류가 터져서 해결하지 못했다..
'Algorithm > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 : 기능개발(Swift) (0) | 2021.09.14 | 
|---|---|
| 프로그래머스 : 베스트 앨범(Swift) (0) | 2021.09.13 | 
| 프로그래머스 : 위장(Swift) (0) | 2021.09.11 | 
| 프로그래머스: 완주하지 못한 선수(Java, Swift) (0) | 2021.09.05 | 
| 프로그래머스 : 로또의 최고 순위와 최저 순위(Swift) (0) | 2021.09.04 | 
