본문 바로가기
개발로그/알고리즘

프로그래머스 Lv.0 공 던지기

by 쩜징 2023. 7. 26.

프로그래머스 Lv.0 공 던지기


공 던지기 게임을 한다.

공은 1번부터 던지며 오른쪽으로

한 명을 건너뛰고 그 다음 사람에게만 던질 수 있다.

친구들의 번호가 있는 정수 배열 numbers와 정수 k가 주어질 때,

k번째로 공을 던지는 사람의 번호는 무엇인지 return하라.

 

numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있다.

numbers는 1부터 시작하며 번호는 순서대로 올라간다.

 

numbers k result
[1, 2, 3, 4] 3
[1, 2, 3, 4, 5, 6] 5 3
[1, 2, 3] 3 2

** 풀이 방법

 

1. numbers[0]부터 공을 던지기 시작한다.

1~k번 공을 던지고 chk를 1씩 증가시켜

chk가 k번째가 되면 반복문을 벗어난다.

 

2. 인덱스를 2씩 증가시킨다.

(한 명씩 건너뛰어서 공을 던져야 하므로) 

 

3. 인덱스가 numbers의 인덱스 범위를 벗어나면

i를 numbers의 길이만큼 빼준다.

class Solution {
    public int solution(int[] numbers, int k) {
        int answer = 0; 
        int chk = 0; int i=0;
        while (chk!=k) {
            
            if (i >= numbers.length) 
                i = i - numbers.length;
            
            answer = numbers[i];
            chk++; i += 2;
        }

        return answer;
    }
}

 

반응형

댓글