백준 20301 java

magicdrill·2024년 11월 6일

백준 문제풀이

목록 보기
481/673

백준 20301 java

알고리즘 풀이의 방향성이 잘못된거 같다.
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;
            }
        }
    }
}

0개의 댓글