[백준] 베스트셀러 (1302)
문제 설명
입력 및 출력
» 입력
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고, 알파벳 소문자로만 이루어져 있다.
» 출력
첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
5 top top top top kimtop |
top |
문제 풀이 (KOTLIN)
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
val map = mutableMapOf<String, Int>()
repeat(readLine().toInt()) {
val name = readLine()
if (map.contains(name)) map[name] = map[name]!! + 1
else map[name] = 1
}
val max = map.values.maxOf { it }
println(
map
.filter { it.value == max }
.keys
.toList()
.sorted()[0]
)
}
문제 풀이 (SWIFT)
let N = Int(readLine()!)!
var map = [String : Int]()
for _ in 0..<N {
let book = readLine()!
if map[book] == nil {
map[book] = 1
} else {
map[book]! += 1
}
}
print(
map.sorted(by: {
if $0.value != $1.value { return $0.value > $1.value }
else { return $0.key < $1.key }})[0].key
)