- 아무리 해도 생각이 잘 안나서 강의 힌트 보고 푼 문제
- Stack, Queue 등 자료구조의 특성을 알고 있었는데도, 어떻게 응용할 수 있을지에 대해 잘 모른게 큰 듯 함.
** 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import java.util.*;
import java.util.stream.Stream;
import java.io.*;
class Solution{
static int n,m,k;
static StringTokenizer st;
static StringBuilder sb;
static int[] arr;
static ArrayList<Integer> list;
public static void main(String[] args)throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
st = new StringTokenizer(br.readLine(), " ");
n = Integer.parseInt(st.nextToken());
m = Integer.parseInt(st.nextToken());
Queue<Integer> q = new LinkedList<>();
for(int i=1; i<=n; i++) {
q.offer(i);
}
int index=0;
while(q.size()!=1) {
for(int i=0; i<m-1; i++) {
int tmp = q.poll();
q.offer(tmp);
}
q.poll();
}
index = q.poll();
System.out.println(index);
br.close();
bw.close();
}
}
|
cs |
- Queue의 대표적인 특성인 FIFO(First-In-First-Out)을 이용하여 m-1번만큼 삭제, 삽입을 진행하고 m번이 오면 해당 요소를 삭제
- 이를 통해 정답이 가능...
'알고리즘 > 인프런(자바(Java) 알고리즘 문제풀이 입문' 카테고리의 다른 글
6-3 삽입정렬(Insert Sorting) (1) | 2024.01.14 |
---|---|
5-8 응급실(Queue) (1) | 2024.01.09 |
4-5 K번째 큰 수 (0) | 2024.01.07 |
4-4 모든 아나그램 찾기(Sliding Window, HashMap) (0) | 2024.01.06 |
4-3 매출액의 종류(Hash, Sliding Window) (1) | 2024.01.06 |