프로그래머스 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 |