ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준] 1158 요세푸스 #JAVA
    Algorithm Solving/BAEKJOON 2021. 1. 29. 20:51

     

    BAEKJOON [1158] 요세푸스


    코드


    import java.io.*;
    import java.util.*;
    
    public class Main {
    
    	public static void main(String[] args) throws IOException{
    		
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
    		
    		int n = Integer.parseInt(st.nextToken());
    		int k = Integer.parseInt(st.nextToken());
    		
    		br.close();
    		
    		LinkedList<Integer> lnk = new LinkedList<Integer>();
    
    		//add data
    		for (int i = 1; i <= n; i++) {
    			lnk.add(i);
    		}
    		
    		int idx = 0;	//현재 인덱스를 담을 변수
    		bw.write("<");
    		while (!lnk.isEmpty()) {
    			
    			idx +=k-1;
    			int size = lnk.size();
    			while (idx >size-1) { // list 사이즈를 넘어가면 처리
    				 idx = idx - size;
    			}
    			
    			bw.write(lnk.remove(idx)+"");
    			
    			if(!lnk.isEmpty()) bw.write(", ");
    			else bw.write(">");
    			
    		}
    		
    		bw.flush();
    		bw.close();
    	}
    
    }
    

     

     

     

    풀이


    • LinkedList 사용
    • 인덱스 변수를 하나 둬서 k-1씩 이동

     

     


    잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)

     

     

    'Algorithm Solving > BAEKJOON' 카테고리의 다른 글

    [백준] 2493 탑 #JAVA  (0) 2021.01.30
    [백준] 1874 스택 수열 #JAVA  (0) 2021.01.30
    [해커랭크] 2D Array - DS #JAVA  (0) 2021.01.27
    [백준] 1406 에디터 #JAVA  (0) 2021.01.24
    [백준] 18258 큐2 #JAVA  (0) 2021.01.24

    댓글