Kotlin ๐ฌ ๋ฐฑ์ค 6๋จ๊ณ :: 1157 ๋ฒ
๋จ์ด ๊ณต๋ถ
๋ฌธ์ |
์ํ๋ฒณ ๋์๋ฌธ์๋ก ๋ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด, ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ๋ฌด์์ธ์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋๋ฌธ์์ ์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋๋ค.
์ ๋ ฅ |
์ฒซ์งธ ์ค์ ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋จ์ด์ ๊ธธ์ด๋ 1,000,000์ ๋์ง ์๋๋ค.
์ถ๋ ฅ |
์ฒซ์งธ ์ค์ ์ด ๋จ์ด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ ๋๋ฌธ์๋ก ์ถ๋ ฅํ๋ค. ๋จ, ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ ์ํ๋ฒณ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ?๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด |
mutableMap์ ๋จ์ด์ ๊ฐ character๋ฅผ key ๊ฐ์ผ๋ก ๋ฃ๊ณ value๋ฅผ ๊ธฐ๋ณธ 1๋ก ์ค์ ํด์ค๋ค.
๋์ผํ key ๊ฐ์ด ์์ผ๋ฉด value์ +1์ ๋ํด์ฃผ๋ฉด์ ์ค๋ณต๋ character์ ๊ฐ์๋ฅผ ์ผ๋ค.
๋ชจ๋ character๋ฅผ ์ฝ์ด์ค๋ฉด ์ต์ข ์ ์ผ๋ก max ๊ฐ์ ๊ฐ์ง key์ ๊ฐ์๋ฅผ ๊ตฌํด 1 ๊ฐ๋ฅผ ์ด๊ณผํ๋ฉด ?๋ฅผ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ทธ key ๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ต์ |
fun main() {
val word = readLine()!!.toString()
val map = mutableMapOf<Char, Int>()
word.forEach {
val character = it.toLowerCase()
if (map.containsKey(character)) {
map[character] = map[character]!!.plus(1)
} else {
map.set(character, 1)
}
}
val max = map.maxBy { it.value }
if (map.filter { it.value == max!!.value }.count() > 1) {
print("?")
} else {
print(max!!.key.toUpperCase())
}
}