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
반응형
'Kotlin > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 연속 부분 수열 합의 개수 - kotlin (0) | 2023.04.13 |
---|---|
[프로그래머스] 귤 고르기 - kotlin (0) | 2023.04.11 |
[프로그래머스] 숫자 짝꿍 - kotlin (0) | 2023.04.11 |
[프로그래머스] 옹알이 (2) - kotlin (0) | 2023.04.11 |
[프로그래머스] 달리기 경주 - kotlin (0) | 2023.04.06 |