class Solution {
fun solution(numbers: IntArray, k: Int): Int {
var cnt = 0
var answer: Int = 0
val mut = mutableListOf<Int>()
for(i in 0..k){
for(j in numbers) mut.add(j)
}
for(i in 0 until mut.size){
if(i % 2 == 0) cnt++
if(cnt == k){
answer = mut[i]
break
}
}
return answer
}
}
배열을 k 번 만큼 늘려서 새로운 배열에 넣어주고
옆 사람을 넘겨 다음 사람에게 토스하기 때문에 2의 배수를 찾고
cnt 를 이용해서 체크해준다
그래서 k값과 cnt 값이 같을 경우 break를 해서 return을 해준다
class Solution {
fun solution(numbers: IntArray, k: Int): Int {
return (1..k).map { numbers }.flatMap { it.toList() }[2 * (k - 1)]
}
}
ex)
val numbers = intArrayOf(1, 2, 3)
val k = 3
받은 numbers 배열을 k번 반복해서 map으로 새 list를 만들어주고
flatMap 으로 인해 1차원적으로 풀어준다
그리고 공은 옆 사람을 지나서 다음 사람에게 토스하기 때문에
2의 배수가 되는데
처음에 0부터 시작하는 것을 1명이 던지는 것으로 진행되기 때문에
k - 1 을 한 인덱스의 값을 구하면 된다
내 코드를 한 줄로 줄이면 이렇게 된다 ...... ㅜ