Queue를 사용해 풀었다.
우선 필요한 변수를 선언하고 데이터를 입력받아 Queue에 넣는다.
Queue<Integer> queue = new LinkedList<>();
StringBuilder result = new StringBuilder("<");
Scanner scanner = new Scanner(System.in);
int k = scanner.nextInt();
int v = scanner.nextInt();
for (int i = 1; i <= k; i++) {
queue.add(i);
}
그다음, Queue가 빌 때까지 다음을 반복한다.
1. v-1번만큼 Queue를 poll()하고, 그 값을 다시 add()한다.(v 번째 수가 필요하므로)
2. result에 Queue를 poll()해서 넣는다.
그림으로 나타내면 다음과 같다.
코드로 써 보자
while (!queue.isEmpty()) {
for (int i = 0; i < v - 1; i++) {
queue.add(queue.poll());
}
result.append(queue.poll()).append(", ");
}
result.delete(result.length() - 2, result.length());
result.append(">");
System.out.println(result);
결과 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Queue<Integer> queue = new LinkedList<>();
StringBuilder result = new StringBuilder("<");
Scanner scanner = new Scanner(System.in);
int k = scanner.nextInt();
int v = scanner.nextInt();
for (int i = 1; i <= k; i++) {
queue.add(i);
}
while (!queue.isEmpty()) {
for (int i = 0; i < v - 1; i++) {
queue.add(queue.poll());
}
result.append(queue.poll()).append(", ");
}
result.delete(result.length() - 2, result.length());
result.append(">");
System.out.println(result);
}
}
'백준' 카테고리의 다른 글
11286번:절댓값 힙(Java) (0) | 2023.02.20 |
---|---|
1302번: 베스트셀러(Java) (0) | 2023.02.19 |
11399번: ATM(Java) (0) | 2023.02.12 |
1406번: 에디터(Java) (0) | 2023.02.07 |
1269번: 대칭 차집합(Java) (2) | 2023.01.31 |