import java.util.*;
class Main {
public int solution(int N, int K) {
int answer = 0;
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < N; i++)
arr.add(i + 1);
int index = 0;
while (arr.size() > 1) {
index = (index + K - 1) % arr.size();
arr.remove(index);
}
answer = arr.get(0);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int N = kb.nextInt();
int K = kb.nextInt();
System.out.print(T.solution(N, K));
kb.close();
}
}
import java.util.*;
class Main {
public int solution(int N, int K) {
int answer = 0;
Queue<Integer> q = new LinkedList<>();
for (int i = 1; i <= N; i++)
q.offer(i);
while (!q.isEmpty()) {
for (int i = 1; i < K; i++)
q.offer(q.poll());
q.poll();
if (q.size() == 1)
answer = q.poll();
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int N = kb.nextInt();
int K = kb.nextInt();
System.out.print(T.solution(N, K));
kb.close();
}
}
Queue를 사용한 방법
Queue<Integer> q = new LinkedList<>();
q.offer();
q.poll();
q.peek();
q.size();
'알고리즘 > JAVA' 카테고리의 다른 글
8. 응급실 (0) | 2021.09.23 |
---|---|
7. 교육과정 설계 (0) | 2021.09.23 |
5. 쇠막대기 (0) | 2021.09.23 |
4. 후위식 연산(postfix) (0) | 2021.09.23 |
3. 크레인 인형뽑기(카카오) (0) | 2021.09.22 |
댓글