코틀린/백준
[백준 1157] 단어 공부 - 코틀린(Kotlin)
Jakorithm
2023. 11. 22. 00:38
728x90
문제
https://www.acmicpc.net/problem/1157
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
코드
알파벳 대소문자로 이루어진 문자열을 입력받아 가장 많이 사용된 알파벳을 출력하는 문제다.
- 대문자와 소문자를 구분하지 않는다.
- 가장 많이 사용된 알파벳이 2개 이상인 경우 ?를 출력한다.
fun main() {
// 사용자로부터 문자열을 입력받고, 모든 알파벳을 대문자로 변환
val input = readln().uppercase(Locale.getDefault())
// 각 알파벳의 등장 횟수를 저장할 배열 초기화
val arr = IntArray(26) { 0 }
// 입력된 문자열을 순회하면서 각 알파벳의 등장 횟수 증가
repeat(input.length) {
val idx = input[it] - 'A'
arr[idx]++
}
var max = -1
var result = '?'
repeat(arr.size) {
if (max < arr[it]) {
// 현재까지 가장 많이 등장한 횟수보다 더 많이 등장한 경우 업데이트
max = arr[it]
result = (it + 65).toChar() // 가장 많이 등장한 알파벳 저장
} else if (max == arr[it]) {
// 가장 많이 등장한 횟수와 동일한 경우 결과를 '?'로 저장
result = '?'
}
}
// 결과 출력
println(result)
}
728x90