목차
문제 : aoj-JOSEPHUS
풀이
문제에서 제시된 방식대로 시뮬레이션을 돌려도 통과되는 문제이다. 실제로 2개가 남을 때 까지 List에서 제거하는 방식으로 시뮬레이션을 돌려서 풀었다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringBuilder sb = new StringBuilder();
private static final int LIMIT = 8030 * 1000;
public static void main(String[] args) throws Exception {
int c = Integer.parseInt(br.readLine());
while (c-->0) new Main().solution();
System.out.print(sb);
}
private void solution() throws Exception {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for (int i = 2; i <= n; i++) {
List<Integer> candidates = new ArrayList<>();
for (int j = 1; j <= n; j++) {
candidates.add(j);
}
int die = 0;
while (candidates.size() > 2) {
if (candidates.remove(die) == i) break;
die += k-1;
die %= candidates.size();
}
if (candidates.size() != 2) continue;
sb.append(candidates.get(0)).append(' ').append(candidates.get(1)).append('\n');
break;
}
}
}
※ 종만북에 이미 풀이가 있는데 제 풀이를 올리는 이유는 제가 책의 풀이를 보지 않고 문제를 푼 후 제 풀이를 올리고 나서 책의 풀이를 보는 방식으로 풀어보고 싶기 때문입니다.
'Study > 알고리즘 문제해결전략(종만북)' 카테고리의 다른 글
[종만북] SORTGAME - Sorting Game (자바 java) (0) | 2023.07.17 |
---|---|
[종만북] GRADUATION - 졸업 학기 (자바 java) (0) | 2023.05.15 |
[종만북] MATCHORDER - 출전 순서 정하기 (자바 java) (0) | 2023.04.17 |
[종만북] STRJOIN - 문자열 합치기 (자바 java) (0) | 2023.04.14 |
[종만북] LUNCHBOX - Microwaving Lunch Boxes (자바 java) (0) | 2023.04.14 |
댓글