https://school.programmers.co.kr/learn/courses/30/lessons/120843
처음에는 for문을 배열의 길이만큼 반복한 후, for문 안에서 공을 던진 횟수가 k가 되면 for문을 탈출하도록 작성했었다. 하지만, 이렇게 하면 배열의 길이보다 더 던지는 경우(몇 바퀴 돌리는 경우)에 대한 경우는 곅산해 주지 못하므로 for문의 범위를 공을 던진 횟수로 한 후 index값을 구해주어야 한다.
예전에 모듈러 연산을 통해 index값을 구해주는 문제를 푼 적이 있어서 그런지 큰 힘듦 없이 문제를 풀었다.
class Solution {
public int solution(int[] numbers, int k) {
//1번부터 공 던짐
//오른쪽으로 1명 건너뛰고 다음사람에게 던짐
//공을 던질 수 있는 사람(i가 i+2번째 사람)
int len = numbers.length;
int idx = 0;
for(int i=1; i<k; i++){ //k번 공을 던짐
idx = (idx + 2) % len;
}
return numbers[idx];
}
}