[백준] 베스트셀러 (1302)

문제 설명

백준 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
)

태그:

카테고리:

업데이트: