https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] ans = new int[n];
List<Integer> list = new LinkedList();
for(int i=1;i<=n;i++){
list.add(i);
}
int i=0;
int i_ans=0;
while(!list.isEmpty()){
i = (i+k-1)%list.size();
ans[i_ans++] = list.remove(i);
}
System.out.println(Arrays.toString(ans).replace("[","<").replace("]",">"));
}
}
'Problem Solving > 자료구조' 카테고리의 다른 글
BOJ1406 에디터(리스트 이터레이터문제) *R (0) | 2024.03.06 |
---|---|
카카오 신고 결과 받기 (0) | 2023.05.04 |
Kakao2018 뉴스 클러스터링 (0) | 2023.04.13 |
kakao2018 캐시 (0) | 2023.04.10 |
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] ans = new int[n];
List<Integer> list = new LinkedList();
for(int i=1;i<=n;i++){
list.add(i);
}
int i=0;
int i_ans=0;
while(!list.isEmpty()){
i = (i+k-1)%list.size();
ans[i_ans++] = list.remove(i);
}
System.out.println(Arrays.toString(ans).replace("[","<").replace("]",">"));
}
}
'Problem Solving > 자료구조' 카테고리의 다른 글
BOJ1406 에디터(리스트 이터레이터문제) *R (0) | 2024.03.06 |
---|---|
카카오 신고 결과 받기 (0) | 2023.05.04 |
Kakao2018 뉴스 클러스터링 (0) | 2023.04.13 |
kakao2018 캐시 (0) | 2023.04.10 |