문제
두 문제는 범위만 다른 동일한 문제이다.
위 문제는 자료구조 중 Queue를 사용하면 쉽게 풀 수 있다.
큐(Queue)는 먼저 들어온 데이터가 먼저 나가는 FIFO(선입선출) 구조를 띄고 있다.
예제의 7 3을 예로 들면
처음엔 <1, 2, 3, 4, 5, 6, 7> 에서
1을 빼서 7 뒤로 넣고,
2를 빼서 7 뒤의 1 뒤에 넣고,
3을 삭제한다.
그 뒤, 4를 빼서 뒤에 넣고,
5를 빼서 뒤로 넣고,
6을 삭제한다.
의 과정을 반복해주면 된다.
package boj;
import java.io.*;
import java.util.LinkedList;
import java.util.Queue;
public class BOJ1158 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] info = br.readLine().split("\\s");
int n = Integer.parseInt(info[0]);
int k = Integer.parseInt(info[1]);
StringBuilder sb = new StringBuilder();
Queue<Integer> queue = new LinkedList<Integer>();
for(int i=1; i<n+1; i++) {
queue.offer(i);
}
sb.append("<");
while(!queue.isEmpty()) {
for(int i=0; i< k-1; i++) {
queue.offer(queue.poll());
}
sb.append(queue.poll());
if(queue.size()==0)
sb.append(">");
else
sb.append(", ");
}
System.out.println(sb);
br.close();
}
}
'Preparing Coding Test > Baekjoon' 카테고리의 다른 글
[Java/백준/재귀, 분할정복] 2630번: 색종이 만들기 (0) | 2021.02.14 |
---|---|
[Java/백준/스택(Stack)] 1918번: 후위 표기식, 1935번: 후위 표기식2 (0) | 2021.02.14 |
[Java(자바)/백준/문자열] 1316번: 그룹 단어 체커 (0) | 2020.12.22 |
[Java(자바)/백준/문자열] 2941번: 크로아티아 알파벳 (0) | 2020.12.21 |
[Java(자바)/백준/BFS,DFS] 1068번: 트리 (0) | 2020.12.21 |