반응형
김신 장군 살리기
n명의 군사들이 동그랗게 서있고, 한 명씩 세어 나가서 매 k 번째 사람이 죽기로 합니다.
예를 들어서 8명의 군사들이 있고 3명마다 죽기로 하면 이 순서로 군사들이 죽게 됩니다.
3 => 6 => 1 => 5 => 2 => 8 => 4 => 7
하지만 야비한 김신 장군은 자신이 마지막으로 남아서 도망가려는 속셈인데요. 파라미터로 정수 n과 정수 k를 받고, 김신 장군이 살기 위해 서있어야할 자리(int)를 리턴해주는 메소드 getSurvivingIndex를 쓰세요.
ArrayList를 사용하세요!
import java.util.ArrayList;
public class Main {
public static int getSurvivingIndex(int n, int k) {
ArrayList<Integer> soldiers = new ArrayList<>();
for(int soldierNumber = 1; soldierNumber <= n; soldierNumber++) {
soldiers.add(soldierNumber);
}
int killIndex = 0;
while (soldiers.size() > 1) {
killIndex = (killIndex + k - 1) %soldiers.size();
System.out.println(soldiers.remove(killIndex) + "번 군사가 죽었습니다.");
}
return soldiers.get(0);
}
public static void main(String[] args) {
System.out.println("김신은 " + getSurvivingIndex(20, 5) + "번 자리에 서있으면 됩니다.");
}
}
본 내용은 Codeit의 '자바 기초' 강의를
참고하여 작성한 내용입니다.
반응형
'Languages > Java' 카테고리의 다른 글
[자바 객체 지향 프로그래밍] 05. 자바, 더 간편하게! (0) | 2021.03.03 |
---|---|
[자바 객체 지향 프로그래밍] 05. 자바, 더 간편하게! (0) | 2021.03.03 |
[자바 객체 지향 프로그래밍] 04. 자바, 더 정확하게! (0) | 2021.03.02 |
[자바 객체 지향 프로그래밍] 03. 중간고사: 문제 해결 능력 기르기 (0) | 2021.02.28 |
[자바 객체 지향 프로그래밍] 03. 중간고사: 문제 해결 능력 기르기 (0) | 2021.02.26 |