아이디어
딕셔너리의 사용법을 알아보는 문제인 거 같다. 첫 번째 for문에서 딕셔너리에 데이터를 삽입한다. 그다음으로 SellCnt의 최댓값을 알아낸다. 다음 for문에서 key들 중 최댓값을 가진 key가 누가 있는지를 알아낸다. 이렇게 처리하는 이유는 같은 판매량을 가진 책들이 있을 경우 사전 순으로 정렬해서 출력해야 하기 때문이다. 배열에 key들을 넣고 여기서 정렬하여 첫 번째에 있는 책의 제목을 출력한다.
해답
let N = Int(readLine()!)!
var SellCnt: [String: Int] = [:]
var bestSellers: [String] = []
for _ in 0 ..< N {
let temp = readLine()!
if !SellCnt.keys.contains(temp) {
SellCnt[temp] = 0
}
SellCnt[temp]? += 1
}
let bestSellerCnt = SellCnt.values.max()
for book in SellCnt.keys {
if SellCnt[book] == bestSellerCnt {
bestSellers.append(book)
}
}
print(bestSellers.sorted(by: <)[0])
'Algorithm > 백준' 카테고리의 다른 글
[백준 스위프트] 1747번 소수&팰린드롬 (0) | 2022.08.30 |
---|---|
[백준 스위프트] 15965번 K번째 소수 (0) | 2022.08.30 |
[백준 스위프트] 9375번 패션왕 신해빈 (0) | 2022.08.24 |
[백준 스위프트] 5525번 IOIOI (0) | 2022.08.24 |
[백준 스위프트] 1764번 듣보잡 (0) | 2022.07.25 |