Kotlin/코딩테스트
[프로그래머스] 기사단원의 무기 - kotlin
깨노비
2023. 4. 11. 00:53
728x90
반응형
숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다.
각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다.
import kotlin.math.sqrt
class Solution {
fun solution(number: Int, limit: Int, power: Int): Int {
var answer: Int = 0
for (i in 1..number) {
answer += powerGauge(i, limit, power)
}
return answer
}
fun powerGauge(number: Int, limit: Int, power: Int): Int {
var cnt = 0
for (i in 1..sqrt(number.toDouble()).toInt()) {
if (number % i == 0) {
cnt += (if (i * i == number) 1 else 2)
}
}
return if (cnt > limit) power else cnt
}
}
728x90
반응형