블로그 이전, 2023. 5. 18. 16:13에 작성했던 글입니다.

1.문제 풀이
1, 2, 3, 4, 5, 6, 7 => <3>
1,2, 4, 5, 6, 7 => <3, 6>
1,2, 4, 5, 7 => <3, 6, 2>
1, 4, 5, 7 => <3, 6, 2, 7>
1, 4, 5 => <3, 6, 2, 7, 5>
1, 4 => <3, 6, 2, 7, 5, 1>
4 => <3, 6, 2, 7, 5, 1, 4>
큐를 이용해서 K-1번까지 queue.poll()을 이용해 꺼내고 다시 큐에 넣는다.(queue.offer());
그리고 K번째 요소를 꺼내고 출력한다.
이걸 계속 반복하고
출력은 queue.size()가 1개가 아닐때만 ', ' 를 붙여서 출력하도록 했다.
queue.size()가 1개만 남으면 while문을 종료하고 출력했다. 컴마를 빼고 출력하기 위해서
2.나의 코드
import java.io.*;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
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> queue = new LinkedList<>(); //int형 queue선언
for(int i=1; i<=N; i++){ //queue에 원소 넣기
queue.offer(i);
}
System.out.print("<");
while(queue.size()!=1){
for(int i=0; i<K-1; i++){
int value=queue.poll();
queue.offer(value);
}
System.out.print(queue.poll() + ", ");
}
System.out.print(queue.poll()+">");
}
}'알고리즘 리뷰' 카테고리의 다른 글
| 백준 JAVA 10026번 적록색약 리뷰 (0) | 2023.08.31 |
|---|---|
| 백준 JAVA 10845번 큐 리뷰 (0) | 2023.08.31 |
| 백준 JAVA 17087번 숨바꼭질 6 리뷰 (0) | 2023.08.30 |
| 백준 JAVA 9020번 골드바흐의 추측 리뷰 (0) | 2023.08.30 |
| 백준 JAVA 1182번 부분수열의 합 리뷰 (0) | 2023.08.30 |