Daily coding
Java Basic : day 5 - Shuffle (카드 섞기) 본문
shuffle
// Shuffle 첫번째 방법
// Random Array Number
int number[] = new int [10]; // 1 ~ 10
// 동적할당 (초기화)
for (int i = 0; i < number.length; i++) {
number[i] = i + 1 ; // 1 ~ 10
}
// swap으로 셔플
int temp; // 스왑용 변수
for (int i = 0; i < 1000 ; i++) {
int a = (int)(Math.random()*10); // 0~9
int b = (int)(Math.random()*10); // 0~9
temp = number[a];
number[a] = number[b];
number[b] = temp;
// 셔플의 기초 작업임
// 섞는다는 면에서는 성능이 그다지 좋지 않음
}
for (int i = 0; i < number.length; i++) {
System.out.println("number = "+ number[i]);
}
// 두번째 방법
int number1[] = new int [10]; // 정해져 있으면 바로 공간 할당
boolean _switch[] = new boolean[10]; // 스위치용 불린 데이터 타입 10개 할당
int w, r; // w : 루프용 변수, r : 랜덤숫자
// 초기화
// boolean은 초기값이 false이나 코드의 반복을 위해 초기화 해준다
for (int i = 0; i < _switch.length; i++) {
_switch[i]= false;
}
w = 0;
while( w < 10) { // w = 0 ~ 9
r= (int)(Math.random()*10); // 0 ~ 9
if(!_switch[r]) {
_switch[r] = true;
number1[w] = r + 1;
w++;
}
}
for (int i = 0; i < number1.length; i++) {
System.out.print (number1[i] + " ");
}System.out.println();
}
}
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 5 - 정렬 프로그램 짜기(sorting program) (0) | 2019.11.22 |
---|---|
Java Basic : day 5 - 정렬 Sorting (비교정렬) (0) | 2019.11.22 |
Java Basic : day 4 - Example 03 : boolean 배열을 이용한 중복값 처리 (0) | 2019.11.22 |
Java Basic : day 4 - Example 02 : 가위바위보 (Rock Scissors Paper) (0) | 2019.11.22 |
Java Basic : day 4 - Example 01 : 숫자 맞추기 게임 (ramdom()) (0) | 2019.11.22 |