lkm9709   3년 전

import java.util.Scanner;

import java.util.ArrayList;

public class Main {

// N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner sc = new Scanner(System.in);

int N = sc.nextInt();

int K = sc.nextInt();

ArrayList A = new ArrayList();

for(int i = 0; i < N; i++) {

A.add(i+1);

}

int index = 0;

System.out.print("<");

while(A.size() != 0) {

if(index == K-1) {

if(A.size() == 1) {

System.out.print(A.get(0) + ">");

A.remove(0);

}else {

System.out.print(A.get(0)+ ", ");

A.remove(0);

index = 0;

}

}else {

int num = A.get(0);

A.remove(0);

A.add(num);

index++;

}

}

sc.close();

}

}

어레이 리스트에 값들을 순서대로 저장하고,

K 번째나오기전까지 리스트 뒤로 넘기고

K 번째가 나오면 꺼내는 식으로 코드를 구성해봤는데요

시간초과가 떠서 ㅠ ㅠ 어떻게 해결해야 할까요

댓글을 작성하려면 로그인해야 합니다.