210525~220812
#26 Error Error 210619
hansssi
2021. 6. 20. 02:23
흠!
오늘은 실패다
문제가 뭐냐면, 파라미터로 사람 수 n과 간격 k를 받아서 ...이걸 뭐라고 설명해야 되지?
ArrayList 사용해서 풀어야하는 문제라, ArrayList에 정수 1부터 n까지 넣어놓고, k 만큼 띄워서 마지막 하나가 남을때까지 remove하고, 마지막 남은 숫자를 리턴하는 문제라고 할 수 있겠다.
예를들어 (8, 3)이면 3 -> 6 -> 1 -> 5 -> 2 -> 8 -> 4 순으로 remove하고, 마지막 남은 7을 출력하면 된다.
그래서 내가 짠 코드는
import java.util.ArrayList;
public class Main {
public static int getSurvivingIndex(int n, int k) {
// 코드를 입력하세요.
//ArrayList에 n만큼 숫자 입력
ArrayList<Integer> humanNumber = new ArrayList<>();
for(int i = 1; i <= n; i++){
humanNumber.add(i);
}
//remove에 인덱스 k만큼 더해가면서 하나만 남을때까지
int initalIndex = 0;
while(true){
initalIndex += k;
System.out.println(initalIndex + "번 군사가 죽습니다.");
humanNumber.remove(initalIndex);
if(humanNumber.size() == 1){
return humanNumber(0);
}
}
}
public static void main(String[] args) {
System.out.println("김신은 " + getSurvivingIndex(20, 5) + "번 자리에 서있으면 됩니다.");
}
}
이런데...
내가 볼때는 리턴하는 humanNumber(0)이 문제인 것 같다.
오류메시지는
Main.java:18: error: cannot find symbol return humanNumber(0); ^ symbol: method humanNumber(int) location: class Main 1 error Main.java:18: error: cannot find symbol return humanNumber(0); ^ symbol: method humanNumber(int) location: class Main 1 error Error: Could not find or load main class Main
이렇게 나온다 ^ㅇ^...
오늘은 늦게 끝나서 많이 할 시간이가 부족하다. 아쉽지만 내일 이어서 해보는걸로...