JOSEPHUS문제 및 첫 사용 질문

  • ys7088
    ys7088

    안녕하세요. 오늘 처음 제출해보는데
    자바로 주어시는 예시와 답을 제가 main함수에서 따로 구현을 해서 이클립스로 실행을 했을땐 컴파일이 오류없이 되고, 예시에 대한 답도 잘 나옵니다. 그런데 여기에 제출할 때에는 메소드 부분만 입력을 해야하는건지, 혹은 구현하고자하는 메소드의 클래스만 넣으면 되는건지 아니면 메인메소드가 있는 클래스까지 넣어야 하는 건지 통 감이 오질 않아서요... 아래 예시는 런타임오류가 난 것이고,
    메인까지 다 넣어도 컴파일오류가 납니다. 도와주세요ㅠㅠ

    import java.util.ArrayList;
    import java.util.Iterator;

    class Josephus{
    public void josephus(int n, int k){
    ArrayList people = new ArrayList();
    int kill = 0;

    for(int i = 0; i < n; i++){
            people.add(i, i+1);
        }
    
        while(people.size()>2){
            people.remove(kill);
    
            kill += (k-1);
            if(kill >= people.size())
                kill -= people.size();          
        }
    
        Iterator<Integer> itr = people.iterator();
        while(itr.hasNext())
            System.out.println(itr.next());
    }

    }


    9년 전
4개의 댓글이 있습니다.
  • 이밝음
    이밝음

    클래스 이름을 Main으로 하시고
    public static void main(String[] args)의 메인 함수가 있어야 돌아갈것 같네요
    그리고 전체코드 복사 붙여넣기 하시면 됩니다.


    9년 전 link
  • ys7088
    ys7088

    감사합니다! 해볼게요!!


    9년 전 link
  • ys7088
    ys7088

    public class Main {
    public static void whosdie(int n, int k){
    ArrayList people = new ArrayList();
    int kill = 0;

    for(int i = 0; i < n; i++){
            people.add(i, i+1);
        }
    
        while(people.size()>2){
            people.remove(kill);
    
            kill += (k-1);
            if(kill >= people.size())
                kill -= people.size();          
        }
    
        Iterator<Integer> itr = people.iterator();
        while(itr.hasNext())
            System.out.println(itr.next());
    }
    public static void main(String[] args) {
        //Test test = new Test();
        //Test test2 = new Test();
    
        whosdie(6, 3);
        whosdie(40, 3);
    }

    }

    말씀대로 이렇게 바꾸어 봤는데 컴파일오류가 뜨네요ㅠㅠ 정말 답답합니다


    9년 전 link
  • 이밝음
    이밝음

    맨위에 whosdie도 Main으로 바꾸셔야되요
    m은 대문자쓰시구요


    9년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.