시간 & 메모리 제한
문제
입력 & 출력
큐(Queue)를 이용한 문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
/* 1. 1 ~ N -> Q
* 2. K-1번째 사람들 -> Q의 맨뒤로 보내기
* 3. K번째 POLL -> 출력
* 4. Q 안의 사람들이 1명 남을때 까지 반복
* */
public class Back_1158 {
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()); // 삭제될 순서
StringBuilder sb = new StringBuilder();
sb.append("<");
Queue<Integer> q = new LinkedList<Integer>();
// 1~N개 OFFER
for (int i = 1; i <= N; i++) {
q.offer(i);
}
//N-1 명의 사람들에 대해 작업
while(q.size() !=1) {
for(int i = 0 ; i < K-1;i++) {
q.offer(q.poll());
}
//K번쨰 사람은 삭제
sb.append(q.poll()+", ");
}
//Q 안에 남은 사람 1명
sb.append(q.poll()+">");
System.out.println(sb);
}
}
- 이 문제는 자료구조의 큐를 이용하면 풀 수 있는 문제이다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2583 영역 구하기(자바) / DFS (0) | 2021.04.06 |
---|---|
백준_11725 트리의 부모 찾기 (자바) / 자료구조 & dfs (0) | 2021.04.05 |
백준_3040 백설 공주와 일곱 난쟁이(자바) / for문 or DFS (0) | 2021.04.04 |
백준_7576 토마토(자바) / BFS (0) | 2021.04.03 |
백준_16926 배열 돌리기1(자바) (0) | 2021.04.03 |