알고리즘 풀이의 방향성이 잘못된거 같다.
java를 사용해 자료구조 -> 그래프 -> 다익스트라 -> 냅색 -> ...으로 다시 시작하겠다.
import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;
public class bj20301 {
static Scanner scanner = new Scanner(System.in);
static int N, K, M;
static Deque<Integer> permutation = new LinkedList<>();
public static void main(String[] args) {
inputData();
findAnswer();
scanner.close();
}
public static void inputData(){
int i;
N = scanner.nextInt();
K = scanner.nextInt();
M = scanner.nextInt();
for(i = 1; i <= N; i++){
permutation.addLast(i);
}
}
public static void findAnswer(){
int i, count = 0;
boolean clockwise = true;
int element;
while(!permutation.isEmpty()){
if(clockwise){
for(i = 1; i < K; i++){
permutation.addLast(permutation.getFirst());
permutation.removeFirst();
}
System.out.println(permutation.getFirst());
permutation.removeFirst();
}
else{
for(i = 1; i < K; i++){
permutation.addFirst(permutation.getLast());
permutation.removeLast();
}
System.out.println(permutation.getLast());
permutation.removeLast();
}
count++;
if(count == M){
count = 0;
clockwise = !clockwise;
}
}
}
}