-
[백준] 1158 요세푸스 #JAVAAlgorithm 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