Algorithm/백준
[백준 스위프트] 1302번 베스트셀러
devKen
2022. 8. 24. 09:36
아이디어
딕셔너리의 사용법을 알아보는 문제인 거 같다. 첫 번째 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])