본문 바로가기

프로그래머스/lv0

공 던지기

/* 공 던지기
 * 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고
 * 그다음 사람에게만 던질 수 있습니다.
 * 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때,
 * k번째로 공을 던지는 사람의 번호는 무엇인지 return
 *
 * numbers              k   result
 * [1, 2, 3, 4]         2   3
 * [1, 2, 3, 4, 5, 6]   5   3
 * [1, 2, 3]            3   2
 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class programmer_0_77 {
    static int[] a1 = {1234};         static int b1 = 2;
    static int[] a2 = {123456};   static int b2 = 5;
    static int[] a3 = {123};            static int b3 = 3;
    public int solution(int[] numbers, int k) {
        int answer = 0;
        int idx = 0;
        for(int i = 0; i < k-1; i++){
            idx = idx+2;
            if(idx >= numbers.length){
                answer = numbers[idx % numbers.length];
            }    
            else{
                answer = numbers[idx];
            }    
            System.out.println("idx=" + idx + " / val=" + answer + " / " + (idx%k));
        }
 
        //다른사람 풀이.
        //return (k-1)*2 % numbers.length+1;
        return answer;
    }
    public static void main(String args[]){
        programmer_0_77 t = new programmer_0_77();
        System.out.println("---------------------------------------");
        System.out.println("result = " + t.solution(a1,b1));
        System.out.println("---------------------------------------");
        System.out.println("result2 = " + t.solution(a2,b2));
        System.out.println("---------------------------------------");
        System.out.println("result3 = " + t.solution(a3,b3));
        System.out.println("---------------------------------------");
    }
}
 
cs

'프로그래머스 > lv0' 카테고리의 다른 글

구슬을 나누는 경우의 수  (2) 2022.12.02
2차원으로 만들기  (0) 2022.12.02
배열 회전시키기  (0) 2022.12.02
주사위의 갯수  (0) 2022.12.02
합성수 찾기  (0) 2022.12.02