Recent Posts
Recent Comments
Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 카카오맵 API
- 카카오 오븐
- Python
- SQL Developer
- Kakao 지도 API
- 10fastfingers.com
- SEQUENCE
- CSV
- Set
- python 기초
- Usecase Diagram
- typing test
- tuple
- 카카오맵
- 데이터베이스 접속
- The Network Adapter could not establish the connection
- oracle 11g
- MySQL
- Jupyter Notebook
- SQL
- Java
- Oracle 18c
- ORA-1017
- database
- Kakao Oven
- Oracle 오류
- 유스케이스 다이어그램
- oracle
- 매일 타자연습
- 자바
Archives
- Today
- Total
Another Brain
mission_java_RandomTeamTest 본문
package com.work.view;
import java.util.Random;
public class RandomTeamTest {
/*
* 실습 :
* 우리반 30명 학생들을 대상으로 랜덤하게 팀 구성하는 프로그램을 구현하세요
* 1. 팀당 인원수??
* >> 고정적 / 가변적
* >> 가변적 => 사용자 입력(IO, main(String[] args) 아규먼트 전달)
* >> 사용자 입력 : IO (java.io API 활용)
* >> main(String[] args) 아규먼트 : 숫자를 입력해도 String => String 입력 숫자문자열을
숫자타입(int) 변환 기술??
* >> main() 메서드에 아규먼트 전달해서 실행하는 방법??
*
* 2. 랜덤하게 배열요소를 접근하기 위한 방법???
* >> 30명
* >> 30개 String[] 배열생성해서 학생들의 이름을 저장
* >> 배열요소 인덱스번호 0 ~ 배열크기-1
* >> java.util.Random API 활용해서 임의 숫자를 추출하는 유틸리티 클래스 제공
*
* 3. 남는 인원은 어떤 팀에 배정할것인지??
* >> 남는 인원을 첫번째 팀부터 순서대로 1명씩 일괄 배정??
* >> 배정하는 팀도 랜덤하게 처리배정??
*
*
*/
public static void main(String[] args) {
if(args.length != 1) {
System.out.println("Usage: java RandomTeamTest 팀원숫자");
System.exit(0);
}
int teamLenth = Integer.parseInt(args[0]); // String 문자열타입숫자데이터를 int 타입으로 변환
// 학생의 이름정보는 배열요소 30명 저장
// 2차원 배열 행크기, 열크기 분석해서 선언 및 생성
System.out.println();
int randomNo = getRandomNo();
System.out.println(randomNo);
}
public static int getRandomNo() {
/* 임의의 정수형 숫자를 추출하기 위한 제공 코드입니다. */
Random extractNo = new Random((long)(Math.random() * System.nanoTime()));
/* 0 ~ 29 사이의 임의의 숫자 추출 */
int no = extractNo.nextInt(30);
return no;
}
}
package com.work.view;
import java.util.Random;
public class RandomTeamTest {
/* 1. 정렬 알고리즘
* 2. 단게임 허용
* 다중게임
*
* #수행결과 문제
* 1. 일부 멤버 중복
* + 팀원 이름을 정렬 {@link string#compareTo(String)}
* */
public static void main(String[] args) {
int teamMemberLengthCols = 4;
if (args.length == 1) {
teamMemberLengthCols = Integer.parseInt(args[0]);
} else {
System.out.println("[팀당 인원수를 입력하지 않아 팀당 인원수를 기본 4명으로 진행합니다.]");
}
String[] names = {
// 전체 멤버 이름 ""
};
String[][] teamMembers = null;
int teamLengthRows = names.length / teamMemberLengthCols;;
int remainderLength = names.length % teamMemberLengthCols;
if (remainderLength == 0) {
teamMembers = new String[teamLengthRows][teamMemberLengthCols];
System.out.println(teamLengthRows + "개의 팀에 " + teamMemberLengthCols + "명의 팀원을 균등하게 배정합니다.");
} else {
teamMembers = new String[teamLengthRows][];
for (int index = 0; index < remainderLength; index++) {
teamMembers[index] = new String[teamMemberLengthCols + 1];
}
for (int index = remainderLength; index < teamLengthRows; index++) {
teamMembers[index] = new String[teamMemberLengthCols];
}
// for (int teamRows = 0; teamRows < teamMembers.length; teamRows++) {
// System.out.println((teamRows + 1) + "팀의 팀원은 " + teamMembers[teamRows].length + "명을 배정합니다.");
// }
System.out.println(teamLengthRows + "개의 팀에 " + teamMemberLengthCols + "명을 배정합니다.");
System.out.println("남은 인원은 " + remainderLength + "개의 팀에 1명씩 추가로 균등 배정합니다.");
}
int[] uniqueNamesIndex = new int[names.length];
int uniqueLength = 0;
int randomNo;
for (int teamRows = 0; teamRows < teamMembers.length; teamRows++) {
for (int teamCols = 0; teamCols < teamMembers[teamRows].length; teamCols++) {
randomLoop:
while(true) {
randomNo = getRandomNo();
for (int index = 0; index < uniqueLength; index++) {
if (uniqueNamesIndex[index] == randomNo) {
continue randomLoop;
}
}
uniqueNamesIndex[uniqueLength] = randomNo;
teamMembers[teamRows][teamCols] = names[randomNo];
break randomLoop;
}
}
}
System.out.println();
System.out.println("[팀별 팀원 배정 정보]");
for (int teamRows = 0; teamRows < teamMembers.length; teamRows++) {
System.out.print((teamRows + 1) + "팀 팀원 : ");
for (int teamCols = 0; teamCols < teamMembers[teamRows].length; teamCols++) {
System.out.print(teamMembers[teamRows][teamCols] + "\t");
}
System.out.println();
}
}
public static boolean isUniqueNo(int randomNo) {
return false;
}
public static int getRandomNo() {
Random random = new Random((long)(Math.random() * System.nanoTime()));
return random.nextInt(30);
}
}
'P > JAVA' 카테고리의 다른 글
5일차_ 주석문, 생성자(Constructor), 생성자 중복정의, this keyword (0) | 2021.05.25 |
---|---|
mission_java_회원관리시스템_요구사항 : 구성요소 분석 및 설계 (0) | 2021.05.25 |
4일차_ 클래스(class), 객체(object), 멤버변수, 메서드, 패키지(package), MVC Pattern (0) | 2021.05.25 |
3일차(5월 21일)_ 배열(array) (0) | 2021.05.22 |
2일차(5월 18일)_ 자바 프로그래밍 기본, 식별자, 데이터타입, 변수, 연산자, 제어문 (조건문, 반복문) (0) | 2021.05.22 |
Comments