알고리즘/백준

[백준] 1157번 : 단어 공부 - 코틀린(kotlin)

Junuuu 2022. 11. 3. 00:01
반응형

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

 

문제 해석

가장 많이 사용된 단어를 대문자로 출력하면 됩니다.

단, 가장 많이 사용된 단어가 여러개면 ?를 출력합니다.

 

코드

fun main() {
    val input = readLine()!!.toString()
    val toLowerCase = input.lowercase()
    val alphabetCounts = Array(26) { 0 }
    toLowerCase.forEach {
        alphabetCounts[it - 'a']++
    }
    val maxCount = alphabetCounts.maxOrNull()

    val max = alphabetCounts.filter {
        it == maxCount
    }

    val maxIndex = alphabetCounts.indexOf(maxCount)

    val result = if (max.size > 1) "?" else ('a' + maxIndex).uppercaseChar()
    println(result)
}