문제 링크: https://www.acmicpc.net/problem/2331
2331번: 반복수열
첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다.
www.acmicpc.net
10분 걸렸습니다.
package fiftysixth
import java.io.*
fun main(){
val br = BufferedReader(InputStreamReader(System.`in`))
val (num, p) = br.readLine().split(' ').map{it.toInt()}
val arr = arrayListOf<Int>()
arr.add(num)
// p번 제곱한 값을 리턴해주는 함수
fun square(num: Int, p: Int): Int{
var i = 1
for (index in 0 until p)
i *= num
return i
}
var idx = 0
// 계속해서 배열에 계산한 값을 추가해가며
// 배열에 추가할 값이 이미 배열에 있는 경우,
// 이미 배열에 있는 값의 index를 구한 후 break
while(true){
val value = arr.last().toString()
var sum = 0
for (index in value.indices){
sum += square(value[index].toString().toInt(), p)
}
if (arr.contains(sum)){
idx = arr.indexOf(sum)
break
}
arr.add(sum)
}
println(idx)
}
'알고리즘 > 구현(백준)' 카테고리의 다른 글
[2023-05-30] 2491 수열 (Kotlin) (0) | 2023.05.30 |
---|---|
[2023-05-27] 1343 폴리오미노 (Kotlin) (0) | 2023.05.27 |
[2023-05-26] 5635 생일 (Kotlin) (0) | 2023.05.26 |
[2023-05-25] 1652 누울 자리를 찾아라 (Kotlin) (0) | 2023.05.25 |
[2023-05-23] 2503 숫자 야구 (Kotlin) (0) | 2023.05.25 |
댓글