have a good time 2021. 10. 27. 13:35
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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 M = Integer.parseInt(st.nextToken());
		  Queue<Integer> input = new LinkedList<>();
		  StringBuilder sb = new StringBuilder();
		  
		  sb.append("<");
		  for(int i=1; i<=N;i++) {
			  input.add(i);
		  }
		  
		  
		  int size = input.size();
		 while(size -->0) {
			  for(int j=0; j<M-1;j++) {
				  int change = input.poll();
				  input.add(change);
			  }
			  sb.append(input.poll()).append(","+" ");
		  }
		  
		 sb.deleteCharAt(sb.lastIndexOf(" "));
		 sb.deleteCharAt(sb.lastIndexOf(","));
		 sb.append(">");
		  System.out.println(sb.toString());
		  
		  
	  }  
		}

 

여기 나와있는 예제인 7 3 을 입력값으로 넣으면

출력값이 <3, 6, 2, 7, 5, 1, 4> 이다

그런데 맨 마지막 4를 출력할 때는 ,(공백) 이 나오면 안되기 때문에

마지막 부분에 이를 제거하기 위해

sb.deleteCharAt(sb.lastIndexOf(" "));

sb.deleteCharAt(sb.lastIndexOf(","));

코드를 사용하였다.

StringBuilder에서 마지막 부분 제거

 

 

 

큐 메소드

Queue<Integer> queue = new LinkedList<>();

queue.add(1); // 1을 큐에 추가

queue.offer(2); // 2를 큐에 추가

 

queue.poll(); // 큐의 첫번째 데이터 꺼냄(큐가 비어 있으면 null 리턴)

queue.remove(); // 큐에서 첫번째 데이터 꺼냄 (큐가 비어 있으면 NoSuchElementException 발생)

1) queue.peek(); // 큐의 첫번째 데이터를 참조만하고 지우지 않음

2)queue.element(); // 큐의 첫번째 데이터를 참조만하고 지우지 않음

 

queue.clear();// 큐 초기화

 

 

 

 

 

아이디어 참고 :

큐에서 앞에서 자료를 꺼내서 다시 뒤로 넣는 아이디어 참고

 

https://st-lab.tistory.com/197?category=899902

 

[백준] 11866번 : 요세푸스 문제 0 - JAVA [자바]

www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 알고리즘 [접근 방법] 큐를 이용한 매우 쉬..

st-lab.tistory.com

 

참고자료 : 큐 메소드 정리

https://hbase.tistory.com/120

 

[Java] Queue 클래스 사용법 & 예제

Queue(큐) 사전적으로 Queue(큐)는 (무엇을 기다리는 사람자동차 등의)줄 이란 뜻이다. 자료구조에서 Queue(큐)는 처리를 기다리는 데이터들이 기다리는 줄이라고 보면 된다. 스택(Stack)과 더불어 가장

hbase.tistory.com