728x90
https://www.acmicpc.net/problem/1158
package BKD_0x3_LinkedList;
import java.io.*;
import java.util.*;
public class BOJ_1158 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.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);
StringBuilder sb = new StringBuilder();
sb.append("<");
while(q.size()!=1){
for(int i=0;i<K-1;i++){
q.offer(q.poll());
}
sb.append(q.poll()+", ");
}
sb.append(q.poll()+">");
bw.write(sb.toString()+"\n");
bw.flush();
bw.close();
bf.close();
}
}
핵심
- Queue를 사용하여 값을 적절하게 순환시켜야한다.
- K번째 값을 꺼내오는 로직을 어떻게 구현해야 할지 생각이 잘 나지 않아 블로그의 도움을 받았다.
- 순환되는 값을 처리하는 Queue에 관한 문제를 더 풀어봐야 겠다.
참고 : https://steady-coding.tistory.com/21
728x90
'🐣 알고리즘 삐약 > 💻 백준 삐약' 카테고리의 다른 글
38 삐약 : 백준 10773|제로[바킹독 문제 풀이|스택|JAVA] (0) | 2023.10.20 |
---|---|
37 삐약 : 백준 10828| 스택[바킹독 문제 풀이|스택|JAVA] (0) | 2023.10.20 |
35 삐약 : 백준 5397 | 키로거 [바킹독 문제 풀이|연결리스트|JAVA] (0) | 2023.10.19 |
34 삐약 : 백준 1406[바킹독 문제 풀이|연결리스트|JAVA] (0) | 2023.10.19 |
33 삐약 : 백준 1919[바킹독 문제 풀이|배열|JAVA] (0) | 2023.10.18 |