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


이렇게 나온다 ^ㅇ^...

 

 

오늘은 늦게 끝나서 많이 할 시간이가 부족하다. 아쉽지만 내일 이어서 해보는걸로...