-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathArrayListExam.java
More file actions
53 lines (40 loc) · 1.79 KB
/
ArrayListExam.java
File metadata and controls
53 lines (40 loc) · 1.79 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.util.ArrayList;
public class ArrayListExam {
public static int getSurvivingIndex(int n, int k) {
// 코드를 입력하세요.
// 김신 장군 살리기
System.out.println(" ");
// 20명이 서있고,
// 한명씩 나가서 k번째 사람이 죽는다.
// 마지막으로 죽어야하는 사람의 자리를 리턴해준다.
// 즉 마지막으로 죽지 않도록. 하는 것
// 20명이 들어갈 ArrayList를 만든다.
int killIndex = 0;
ArrayList<Integer> willKilled = new ArrayList<>();
for (int i = 1; i <= 20; i++) {
willKilled.add(i);
}
// System.out.println(willKilled);
while (true) {
// System.out.println(killIndex);
killIndex = killIndex + (5-1);
// System.out.println(killIndex);
// System.out.println(willKilled.size());
// System.out.println(willKilled);
// 사이즈가 11일때, 11인덱스인 경우, 인덱스는 0~10까지이므로 같거나 클때로 조건을 달리해야 한다.
if (killIndex >= willKilled.size()) {
// 인덱스를 초과하는 경우 나머지로 초기화 해준다.
killIndex = killIndex%willKilled.size();
// System.out.println("--?");
}
// System.out.println(killIndex);
willKilled.get(killIndex);
System.out.println(willKilled.get(killIndex)+"번 군사가 죽습니다.");
willKilled.remove(killIndex);
if (willKilled.size() == 1) {return willKilled.get(0);}
}
}
public static void main(String[] args) {
System.out.println("김신은 " + getSurvivingIndex(20, 5) + "번 자리에 서있으면 됩니다.");
}
}