public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int C = Integer.parseInt(br.readLine());
while (C-- > 0) {
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
Queue<Integer> q = new LinkedList<>();
for (int i = 0; i < N; i++) {
q.offer(i + 1);
}
while (q.size() > 2) {
q.poll();
for (int i = 0; i < K - 1; i++) {
int n = q.poll();
q.offer(n);
}
}
bw.write((q.poll()) + " " + (q.poll()) + "\n");
}
bw.flush();
bw.close();
br.close();
}
pjy1368
Queue 방식으로 다음과 같이 풀었을 때, 시간초과가 납니다.
시간을 어떻게 줄일 수 있을까요?
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
}
4년 전