본문 바로가기
프로그래밍/알고리즘 풀이

[알고리즘] 백준 1158번: 요세푸스 JAVA

by 방구석개발자 2021. 4. 13.
반응형

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws Exception {
        int N,k = 0;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String nk=br.readLine();
        N = Integer.parseInt(nk.split(" ")[0]);
        k = Integer.parseInt(nk.split(" ")[1]);
        StringBuilder sb = new StringBuilder();

        List<Integer> list=new ArrayList<Integer>();
        for(int i=1;i<=N;i++){
            list.add(i);
        }
        sb.append("<");
        int index=k-1;
        while(list.size()>1){
            sb.append(list.get(index)+", ");
            list.remove(index);
            index=index+k-1;
            if(index>=list.size()){
                index=index%list.size();
            }
        }
        sb.append(list.get(0)+">");
        System.out.print(sb);
    }
}

리스트와 %(Mod)를 이용하여 문제를 풀었습니다.

원이기 때문에 찾고 싶은 번호가 list size 보다 커지면 %를 사용하여 찾았습니다.

반응형

댓글