전체 글 (92) 썸네일형 리스트형 [Java 연습] Queue를 이용한 요세프스 순열 문제 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.stream.IntStream; //20240222 /* 요세프스 순열 문제 N과 K가 주어졌을 때 (N,K) 요세프스 순열을 구하시오. N과 K는 N >= K를 만족하는 양의 정수이다. 1부터 N번 까지 N명이 순서대로 원을 이루어 모여있다. 이 모임에서 원을 따라 순서대로 K번째 사람을 제외한다. 모든 사람이 제외될 때까지 반복하며 이 때, 제외되는 순서가 요세푸스 순열이다. */ public class queuePractice03 { public static ArrayList getJosephusPermutation(int N.. [Java 연습] Queue를 이용한 카드 섞기 import java.util.*; import java.util.stream.IntStream; //20240222 카드 섞기 /* 1부터 N까지 번호로 구성된 N장의 카드가 있다. 1번 카드가 가장 위에 그리고 N번 카드는 가장 아래의 상태로 카드가 순서대로 쌓여있다. 아래의 동작을 카드 한 장만 남을 때가지 반복했을 때 가장 마지막 남는 카드 번호를 출력하시오. 1.가장 위의 카드는 버린다. 2.그 다음위의 카드는 쌓여 있는 카드의 가장 아래에 다시 넣는다. */ public class queuePractice02 { public static int findLastCard(int N){ Queue queue = new LinkedList(); IntStream.range(1, N + 1).forEa.. [Algorithm 기초] 기수 정렬, 계수 정렬, 셀 정렬 기수 정렬 (Radix Sort) 낮은 자리수 부터 정렬하는 방식. 각 원소 간의 비교 연산을 하지 않아 빠른 대신, 기수 테이블(queue)을 위한 메모리 필요 알고리즘 복잡도 : O(dn) 기수정렬구현 의사코드 (Pseudocode) RadixSort(a[], n): // Finding the maximum element max=a[0] For (i=1 to n-1): If (a[i]>max): max=a[i] // Calling countingSort for // k times using For loop. For (div=1 to max/div>0): countingSort(a, n, div) div=div*10 계수 정렬(Counting Sort) 숫자끼리 비교하지 않고 카운트를 세서 정렬하는 방.. 이전 1 ··· 15 16 17 18 19 20 21 ··· 31 다음