백준 1158번: 요세푸스 문제 [JAVA]

2023. 3. 15. 00:52·개발/코딩테스트

https://www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

 

  • 풀이

큐를 이용하는 문제이다.

poll한 숫자를 다시 offer(add)해줌으로써 원순열을 구현할 수 있다.

큐가 빌 때까지 while문을 돌리고, K번째 숫자가 나올 때까지 poll한 숫자를 다시 add한다. K번째 숫자는 제거한다.

 

  • 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {
	public static void main(String [] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(bf.readLine());
		
		int N = Integer.parseInt(st.nextToken());
		int K = Integer.parseInt(st.nextToken());
		
		// 큐 생성
		Queue<Integer> que = new ArrayDeque<>();
		for (int i=1; i<=N; i++) que.add(i);
		
		// 결과 출력용 StringBuilder
		StringBuilder result = new StringBuilder();
		result.append("<");
		
		while(!que.isEmpty()) {
			for (int i = 0; i<K-1; i++) {
				que.add(que.poll());
			}
			result.append(que.poll());
			if (que.size()!=0) result.append(", "); // 마지막 값이 아닐 경우에만 추가
		}
		
		result.append(">");
		System.out.println(result);
	}
}
'개발/코딩테스트' 카테고리의 다른 글
  • 백준 1759번: 암호만들기 [JAVA]
  • 백준 17608번: 막대기 [JAVA]
  • 백준 2164번: 카드2 [JAVA]
  • 백준 2839번: 설탕 배달 [파이썬]
로또
로또
게임 개발자 연습생의 발전 일지
  • 로또
    게임 개발 발전소
    로또
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 개발
        • 코딩테스트
        • JAVA
        • DB
        • Unity
      • 강의 N
        • 패스트캠퍼스 0원 챌린지
        • 멋쟁이 사자처럼 유니티 부트캠프 N
      • 게임 N
        • 리뷰 N
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    수강료0원챌린지
    BFS
    패스트캠퍼스
    dfs
    Java
    그래프
    C4D
    2839
    백트래킹
    환급챌린지
    멋쟁이사자처럼후기
    한번에끝내는프론트엔드개발초격차패키지Online
    완전탐색
    패캠챌린지
    그리디
    오공완
    그리디알고리즘
    분리집합
    직장인인강
    부분집합
    패스트캠퍼스후기
    패캠인강후기
    직장인자기계발
    트리
    코딩테스트
    3D웹인터랙티브
    자료구조
    설탕배달
    최소신장트리
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
로또
백준 1158번: 요세푸스 문제 [JAVA]
상단으로

티스토리툴바