https://www.acmicpc.net/problem/2164
저는 자료구조에서 큐를 통해 풀었습니다.
큐를 통해 맨 앞에 것을 꺼내고, 또 맨 앞에 것을 꺼내어 맨 뒤에 넣는 것을 반복하여 최후의 한 장이 무엇인지 찾아 문제를 해결하였습니다.
package BOJ.dataStructure;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class BOJ_2164 {
public static void main(String[] args) throws Exception {
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());
Queue<Integer> q = new LinkedList<>();
for(int i = 1 ; i <= n ; i++){
q.offer(i);
}
int[] result = new int[n];
int index = 0;
while(!q.isEmpty()){
for(int i = 0 ; i < k-1 ; i++){
q.offer(q.poll());
}
result[index++] = q.poll();
}
print(result,n);
}
private static void print(int[] result, int n) {
StringBuilder sb = new StringBuilder();
sb.append("<");
for(int i = 0 ; i < n ; i++){
sb.append(result[i]+", ");
}
sb.setLength(sb.length()-2);
sb.append(">");
System.out.println(sb.toString());
}
}
'알고리즘' 카테고리의 다른 글
백준 2217번 로프 (JAVA) (0) | 2024.01.15 |
---|---|
백준 1758번 알바생 강호 (JAVA) (1) | 2024.01.14 |
백준 6497번 전력난 (JAVA) (0) | 2024.01.12 |
백준 16398번 행성 연결 (JAVA) (1) | 2024.01.11 |
백준 2606번 바이러스 (JAVA) (1) | 2024.01.10 |