요구능력 : dictionary와 정렬함수를 함께 사용할 수 있느냐
코드설명 :
사실 value는 쓸모가 없다. 문제에서 말한 같은 단어가 입력되면 하나만 출력하래서 dictionary에 넣어준것이다.
핵심코드
단어(key)의 길이가 같으면 사전순으로 오름차순 정렬
단어(key)의 길이가 다르면 길이순으로 정렬
var sortedDict = dict.sorted {
$0.key.count == $1.key.count ? $0 < $1 : $0.key.count < $1.key.count
}
후기 : 딕셔너리와 sort()를 활용할 줄 알면 가벼운 문제
let n = Int(readLine()!)!
var dict = [String : Int]()
for _ in 0..<n {
let word = readLine()!
dict[word, default: 0] += 1
}
var sortedDict = dict.sorted {
$0.key.count == $1.key.count ? $0 < $1 : $0.key.count < $1.key.count
}
for i in 0..<sortedDict.count {
print("\(sortedDict[i].key)")
}
'Algorithm > 문제풀이_백준' 카테고리의 다른 글
Swift) 백준 18870번 (좌표압축) (0) | 2021.08.24 |
---|---|
Swift) 백준 10814번 (나이순 정렬) (0) | 2021.08.23 |
Swift) 백준 11651번 (좌표 정렬하기2) (0) | 2021.08.23 |
Swift) 백준 11650번 (좌표 정렬하기) (0) | 2021.08.23 |
Swift) 백준 1427번 (소트인사이드) (0) | 2021.08.21 |
댓글