import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Yosepus {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
StringBuilder sb = new StringBuilder();
sb.append("<");
List<Integer> list = new ArrayList<>();
for (int i = 0; i < N; i++) {
list.add(i+1);
}
int index = -1;
while (!list.isEmpty()){
index = (index+K)%list.size();
if(list.size()==1) {
sb.append(list.get(index)).append(">");
break;
}
sb.append(list.get(index)).append(", ");
list.remove(list.get(index));
index -=1;
}
System.out.println(sb);
}
}
이문제는 리스트에서 하나씩 숫자를 제거해가며 푼다는 설계를 하는것이 핵심이다.
또한 탐색을 원형으로 돌면서 하므로 % 연산 사용을 계획한다.
핵심은 잘 파악했는데, 구현하는것에서 좀 헤맸다.
배열로도 시도했었는데 그러면 체크해야 할것이 많아져서 더 복잡한거 같다.