베오
DCode
베오
전체 방문자
오늘
어제
  • 분류 전체보기 (218)
    • 공지사항 (1)
    • 잡설 (1)
    • Programming (33)
      • [C] (1)
      • [Java] (4)
      • [Python] (2)
      • [Android] (2)
      • [Network] (0)
      • [Operation System] (2)
      • [Spring Boot] (22)
      • [Docker] (0)
    • Algorithm (31)
      • 자료구조 (2)
      • 알고리즘 (Java) (14)
      • 알고리즘 (기초) (15)
    • Coding Test (131)
      • BOJ (131)
      • Algospat (0)
    • 이론적인거 (14)
      • 보안 (5)
      • 오류 해결 (2)
      • 디자인 패턴 (5)
      • 네트워크 (1)
      • 기타 (1)
    • 최신기술 (4)
      • 블록체인 (1)
    • [Project] (1)

블로그 메뉴

  • 🐈‍⬛ GitHub
  • 📫 방명록
  • 🔖 태그

공지사항

인기 글

티스토리

hELLO · Designed By 정상우.
베오

DCode

Coding Test/BOJ

[BOJ/JAVA] 11866번: 요세푸스 문제 0

2022. 9. 8. 13:37

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class java_11866 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        StringTokenizer st = new StringTokenizer(br.readLine());

        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        ArrayList<Integer> arrayList = new ArrayList<>();

        for (int i = 0; i < N; i++) {
            arrayList.add(i + 1);
        }

        ArrayList<String> resultList = new ArrayList<>();
        int startIndex = 0;
        while (!arrayList.isEmpty()) {
            startIndex = (startIndex + K - 1) % arrayList.size();
            resultList.add(arrayList.remove(startIndex).toString());
        }

        System.out.print("<");
        System.out.print(String.join(", ", resultList));
        System.out.println(">");

        // 5개 남았을 때 5번째 찾기 0 1 2 3 4 -> 4 if arrayList.size()>=(K-1) return K-1
        // 4개 남았을 때 5번째 찾기 0 1 2 3 -> 0 (5)%4 == 1 -1
        // 3개 남았을 때 5번째 찾기 0 1 2 -> 1 (5)%3 == 2 -1
        // 2개 남았을 때 5번째 찾기 0 1 -> 0 (5)%2 == 1 -1

        br.close();
        bw.close();
    }
}
저작자표시 (새창열림)

'Coding Test > BOJ' 카테고리의 다른 글

[BOJ/JAVA] 11265번: 끝나지 않는 파티  (0) 2022.09.26
[BOJ/JAVA] 1287번: 할 수 있다  (0) 2022.09.08
[BOJ/JAVA] 2064번: IP 주소  (0) 2022.09.08
[BOJ/JAVA] 1715번: 카드 정렬하기  (0) 2022.08.27
[BOJ/JAVA] 15903 카드합체 놀이  (0) 2022.08.27
    'Coding Test/BOJ' 카테고리의 다른 글
    • [BOJ/JAVA] 11265번: 끝나지 않는 파티
    • [BOJ/JAVA] 1287번: 할 수 있다
    • [BOJ/JAVA] 2064번: IP 주소
    • [BOJ/JAVA] 1715번: 카드 정렬하기
    베오
    베오

    티스토리툴바