https://www.acmicpc.net/problem/1158
- 예제 입력1
7 3
- 예제 출력1
<3, 6, 2, 7, 5, 1, 4>
- 문제 접근
- 1 ~ N까지 원을 그리고 K번째마다 빼서 별도 저장
- 원이 모두 사라질 때까지 반복
- 문제 해결
- 1 ~ N번까지 Queue에 추가하여 Queue 셋팅
- K-1번을 빼고 다시 Queue에 추가
- K번은 빼고 StringBuilder에 추가
- 기존 풀이 [메모리 : 294824 KB / 시간 : 576 ms]
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
Queue<Integer> queue = new LinkedList<>();
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
for(int i = 1; i <= N; i++) queue.offer(i);
sb.append("<");
while(!queue.isEmpty()){
for(int i = 0; i < K; i++){
int value = queue.remove();
if(i == K-1) sb.append(value).append(",").append(" ");
else queue.add(value);
}
}
sb.deleteCharAt(sb.length()-1).deleteCharAt(sb.length()-1).append(">");
System.out.println(sb);
}
'Coding Test > Problem Number' 카테고리의 다른 글
[Java] 최소 힙 [1927번] (0) | 2024.07.25 |
---|---|
[Java] 센티와 마법의 뿅망치 [19638번] (0) | 2024.07.25 |
[Java] 프린터 큐 [1966번] (0) | 2024.07.24 |
[Java] 에디터 [1406번] (0) | 2024.07.24 |
[Java] 스택 [10828번] (0) | 2024.07.24 |