728x90
0 1 2 3 4 5 6
1 2 3 4 5 6 7
size = 7
cursor = 2
remove = 3
--------------------
0 1 2 3 4 5 6
1 2 4 5 6 7
size = 6
cursor = 4
remove = 6
--------------------
0 1 2 3 4 5 6
1 2 4 5 7
size = 5
cursor = 1
remove = 2
------------------
0 1 2 3 4 5 6
1 4 5 7t
size = 4
cursor = 3
remove = 7
--------------------
0 1 2 3 4 5 6
1 4 5
size = 3
cursor = 5 -> 2
remove = 5
--------------------
0 1 2 3 4 5 6
1 4
size = 2
cursor = 1
remove = 1
--------------------
0 1 2 3 4 5 6
4
size = 1
cursor = 0
remove = 4
import java.io.*;
import java.util.*;
public class Main {
// static int ncheck = 0;
// static int nnum = 0;
/* output setting */
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
/* input reader */
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// ArrayList<Integer> list = new ArrayList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
int cursor = k - 1;
int temp;
int ncount = 0;
int size = 0;
ArrayList<Integer> list = new ArrayList<>();
for (int ii = 0; ii < n; ii++) {
list.add(ii + 1);
}
sb.append("<");
k = k - 1;
n = n - 1;
size = list.size();
for (int ii = 0; ii < n; ii++) {
if (cursor < size) {
if (list.isEmpty() == false) {
sb.append(list.get(cursor) + ", ");
list.remove(cursor);
}
} else {
cursor = cursor - size;
while (cursor >= size) // 이게 핵심일듯..인덱스익셉션
cursor = cursor - size;
if (list.isEmpty() == false) {
sb.append(list.get(cursor) + ", ");
list.remove(cursor);
}
}
cursor += k;
size = list.size();
}
sb.append(list.get(0) + ">");
System.out.println(sb);
br.close();
}
}
728x90
'코딩 테스트' 카테고리의 다른 글
1475번 방번호(자바, java) - 백준 문제풀이 (0) | 2023.01.11 |
---|---|
5397번 키로거(자바, java) - 백준 문제풀이 (0) | 2023.01.11 |
6603번 로또 문제(자바, java) - 백준 문제풀이 (0) | 2023.01.11 |
1012번 유기농 배추 문제(자바, java) - 백준 문제풀이 (0) | 2023.01.11 |
7576번 토마토 문제(자바, java) - 백준 문제풀이 (0) | 2023.01.09 |