Skip to content

Instantly share code, notes, and snippets.

@sedin2
Created February 10, 2022 13:10
Show Gist options
  • Save sedin2/7d3462f21992c49b4a7d5ab4f16e2b2f to your computer and use it in GitHub Desktop.
Save sedin2/7d3462f21992c49b4a7d5ab4f16e2b2f to your computer and use it in GitHub Desktop.
BJ_1158_요세푸스
package com.ssafy.im;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
static String input = "7 3";
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
// BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br = new BufferedReader(new StringReader(input));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
sb.append("<");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
Queue<Integer> people = new LinkedList<Integer>();
for (int i = 1; i <= N; i++) {
people.offer(i);
}
while (people.size() != 1) {
for (int i = 0; i < K - 1; i++) {
people.offer(people.poll());
}
sb.append(people.poll() + ", ");
}
sb.append(people.poll());
sb.append(">");
System.out.println(sb);
}
}
@sedin2
Copy link
Author

sedin2 commented Feb 10, 2022

BJ_1158_요세푸스

  • Queue에서 가장 맨앞 Element를 poll 해주면서 맨 뒤로 offer 해주면서 하나씩 제거
  • List로도 풀이가 가능하지만 인덱스 계산하기가 불편하다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment