/* 공 던지기
* 공은 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 = {1, 2, 3, 4}; static int b1 = 2;
static int[] a2 = {1, 2, 3, 4, 5, 6}; static int b2 = 5;
static int[] a3 = {1, 2, 3}; 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 |