import java.util.*;
public 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()); // k-1번만큼 큐에서 꺼낸 값을 맨 뒤에 추가
}
Q.poll(); // k번째 숫자는 큐에서 제거
if(Q.size() == 1) answer=Q.poll(); // 마지막으로 남은 숫자
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int k=sc.nextInt();
System.out.println(T.solution(n,k));
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] 알고리즘 : Queue- 응급실 (0) | 2022.07.15 |
---|---|
[JAVA] 알고리즘 : Queue- 교육과정설계 (0) | 2022.07.14 |
[JAVA] 알고리즘 : Stack- 후위식 연산(postfix) (0) | 2022.07.12 |
[JAVA] 알고리즘 : Stack- 크레인 인형뽑기(카카오) (0) | 2022.07.12 |
[JAVA] 알고리즘 : Stack- 괄호문자제거 (0) | 2022.07.11 |