[JAVA] 자바 - shuffle이용해서 조 편성하기
by mini_min[JAVA]
자바 - shuffle로 조편성하기
✔️ collections 에서 셔플
컬렉션에서 셔플 실행하는거 ok. 무작위 섞기하는거 알겠다.
셔플로 조편성하기 위해서 주어진 것.
= String 배열 (21명 존재)
그리고 조편성을 위해 필요한 것. String[][] 배열!!
그룹수는 cnt 4를 받는다. 21명을 4조로 만들건데, 자연스럽게 조1개는 +1명 더 받아낼 것.
String [] aa = new String[] {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "n", "m", "o", "p", "q", "r", "s", "t", "u"};
//필요한 것 : 무작위 섞기해서 출력할 조 테이블~
String[][] group = null;
int cnt = 4;
💡 이제 이 조에서 그룹별 최대 인원을 받는 계산을 만들 것.
아쉽게도, aa 배열의 길이는 21... 즉, aa.length / cnt+1
int inwon aa.length%cnt ==0 ? aa.length / cnt : aa.length / cnt+1 ;
group = new String [cnt][inwon];
Collections.shuffle(Arrays.asList(aa));
//배열이니까 어레이 리스트에 리스트로 선언하고 셔플
int n=0;
gogo:
for(int col=0; col<inwon; col++) {
for(int row=0; row<cnt; row++) {
group[row][col] = aa[n++];
if(n >= aa.length) {
break gogo; //아예 for 문장 탈출
}
}
}
for(int i=0; i<cnt; i++){
System.out.println((i+1) + " 조 : ");
for(int j=0; j<inwon; j++) {
if(group[i][j] != null) {
System.out.print(group[i][j] + " ");
}
}
}
💡 (아래 for 문은 출력하기 위한 for 문이다.)
위에 gogo : 이 부분은 aa List 에 있는 값들을 순차적으로 출력하기 위함.
aa.length가 0이 된 순간, (고갈되면) 다시 length 로 돌아가서 for 문을 처음부터 실행.
이때, inwon 수는 앞전에 실행된 for 문 실행이 찍힌게 빠져서 aa.length%cnt가 다시 실행되는 꼴..
즉, 이때 inwon은 5가 되고, 앞전에는 inwon 이 6이었다.
'Java' 카테고리의 다른 글
[JAVA] 자바 - Comparator 으로 성적처리 프로그램 정렬!! (0) | 2022.08.02 |
---|---|
[JAVA] 자바 - Comparable 클래스와 Collections sort(정렬) / Comparator (0) | 2022.08.02 |
[JAVA] 자바 - 컬렉션 Collection 정렬하기(순차/이분/역순 검색) (0) | 2022.08.02 |
[JAVA] 자바 - 컬렉션 Collection 프레임워크 & shuffle (0) | 2022.08.02 |
[JAVA] 자바 - Queue 큐 / PriorityQueue 우선순위 큐 (0) | 2022.08.01 |
블로그의 정보
개발자 미니민의 개발로그
mini_min