알고리즘/백준
[백준] 2577번 : 숫자의 개수 - 코틀린(Kotlin)
Junuuu
2022. 11. 1. 00:01
반응형
https://www.acmicpc.net/problem/2577
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
문제 해석
곱셈의 결과로 어떤 숫자가 몇 번 나왔는지 구하는 문제입니다.
코드
fun main() {
val counts = Array(10){0}
val a = readLine()!!.toInt()
val b = readLine()!!.toInt()
val c = readLine()!!.toInt()
val multipleResult = (a * b * c).toString()
for(index in multipleResult.indices){
val curNumber = multipleResult[index].digitToInt()
counts[curNumber]++
}
val stringBuilder =StringBuilder()
for(index in counts.indices){
stringBuilder.append("${counts[index]}\n")
}
println(stringBuilder.toString())
}
다른분들의 코드에서 배운 점
fun main(){
val result = IntArray(10)
var inputProduct = 1
for (i in 0 until 3){
inputProduct *= readln().toInt()
}
val string = inputProduct.toString()
string.forEach {
result[it.toString().toInt()]++
}
result.forEach {
println(it)
}
}
입출력 부분도 반복문을 활용하여 간단하게 구성하였고
for 문대신 함수형 프로그래밍을 사용했습니다.
stringBuilder를 사용하면 성능상 이점이 있을 것이라고 생각했습니다.
내부적으로 최적화가 되는지 오히려 4ms더 빠른 성능을 보여줬습니다.