[JAVA] 프로그래머스 : 공 던지기

조예빈·2024년 8월 15일
0

Coding Test

목록 보기
110/138

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];
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글