My footsteps
로또 배열 랜덤값 본문
728x90
- Random 객체는 0부터 값을 채워준다
int[] lotto = new int[6];
//로또라는 이름의 정수 6개를 담을 수 있는
Random rand = new Random();
//랜덤 값을 랜덤 객체에 담는
for(int i=0; i<lotto.length; i++) {
lotto[i] = rand.nextInt(45)+1; //0부터 시작인데 로또엔 0이 없으니 +1을 해줌
//객체는 0부터 담으니까 +1을 해서 1~45 범위로 만들어주고 lotto객체에 담는다 lotto[0]
}//for문 end
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)//i가 5가 아닐때만 콤마를 출력한다
System.out.print(",");
//로또 배열의 값 출력
}
<랜덤값 정렬해서 나오게 하기>
1. 빈공간을 만들고
2. 값을 하나 넣고
3. 비어진 공간에 옆에 있던 값 땡기고
4. 빈공간에 들어있던 값을 옆으로 이동한 애의 자리에 넣는다
//로또의 0번째 값과 1번째 값의 위치를 변경
int tmp=0;
//빈공간 만들어주기
tmp = lotto[0];//A공간의 값을 빈공간에 옮기고
lotto[0] = lotto[1];//B공간의 값을 A공간에 옮기고
lotto[1] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
- Thread.sleep(1000) 1초 뒤에 출력되게 한다. 1000밀리세컨드라서 1초
<값 바뀌는거 잘보이는 코드 ㅎㅎ 쓰레드 사용>
package ex4;
import java.util.Random;
public class lotto {
public static void main(String[] args) throws InterruptedException {
int[] lotto = new int[6];
//로또라는 이름의 정수 6개를 담을 수 있는
Random rand = new Random();
//랜덤 값을 로또 배열에 담는
for(int i=0; i<lotto.length; i++) {
lotto[i] = rand.nextInt(45)+1;
//객체는 0부터 담으니까 +1을 해서 1~45 범위로 만들어주고 lotto객체에 담는다 lotto[0]
}//for문 end
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//초기 랜덤 값
}System.out.println();
Thread.sleep(2000);
//100줄 밀고 > 값 출력하고 > 쓰레드(재우고)
//로또의 0번째 값과 1번째 값의 위치를 변경
//빈공간 만들어주기
int tmp = lotto[0];//A공간의 값을 빈공간에 옮기고
lotto[0] = lotto[1];//B공간의 값을 A공간에 옮기고
lotto[1] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
Thread.sleep(2000);
{
int tmp2 = lotto[1];//A공간의 값을 빈공간에 옮기고
lotto[1] = lotto[2];//B공간의 값을 A공간에 옮기고
lotto[2] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
}Thread.sleep(2000);
{
int tmp2 = lotto[2];//A공간의 값을 빈공간에 옮기고
lotto[2] = lotto[3];//B공간의 값을 A공간에 옮기고
lotto[3] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
}Thread.sleep(2000);
{
int tmp2 = lotto[3];//A공간의 값을 빈공간에 옮기고
lotto[3] = lotto[4];//B공간의 값을 A공간에 옮기고
lotto[4] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
}Thread.sleep(2000);
{
int tmp2 = lotto[4];//A공간의 값을 빈공간에 옮기고
lotto[4] = lotto[5];//B공간의 값을 A공간에 옮기고
lotto[5] = tmp;//빈공간의 값을 B공간에 옮긴다
for(int i=0; i<100; i++)
System.out.println();
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
//로또 배열의 값 출력
//정렬 된 배열의 출력
}System.out.println();
}Thread.sleep(2000);
}
}
<자릿값 계속 바꾸는 코드 for문으로 정리한거>
package ex4;
import java.util.Random;
public class lotto {
public static void main(String[] args) throws InterruptedException {
int[] lotto = new int[6];
Random rand = new Random();
for(int i=0; i<lotto.length; i++) {
lotto[i] = rand.nextInt(45)+1;
}//배열에 값 넣어주는 for문
for(int i=0; i<100; i++)
System.out.println();
//출력시 100줄 미는 for문
//100줄로 설정한 이유는 콘솔창의 리미트가 딱 100줄??이래서 100줄로 밀면 더 내려갈곳이 없어서 숫자만 바뀌게 나온당..
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
}System.out.println();
Thread.sleep(2000);//출력for문
//자리가 바뀌는거는 계속 반복되니까 반복문으로..
//반복되는걸 찾고(중복제거...) 어떻게 반복문으로 바꿀지..
for(int i=0; i<5; i++) {//배열의길이는 6인데 i<5인 이유는, 총 바뀌는 횟수가 5번이라서 0~4.로또 배열의 길이로 하면 길이 초과했다고 오류남
int tmp = lotto[i];
lotto[i] = lotto[i+1];
//자릿값이 늘어남에 따라 i+1
lotto[i+1] = tmp;
//계속 자리를 바꿔줘야하니까 이부분이 메인이 되는 for문을 생성한것
for(int j=0; j<100; j++)
System.out.println();
//출력시 100줄 미는 for문
for(int k=0; k<lotto.length; k++) {
System.out.printf("%d",lotto[k]);
if(k!=5)
System.out.print(",");
}System.out.println();
Thread.sleep(2000);
//출력for문
}
}
}
<앞에 값이 뒤에 값보다 클때만 바꾼다>
int[] lotto = new int[6];
Random rand = new Random();
for(int i=0; i<lotto.length; i++) {
lotto[i] = rand.nextInt(45)+1;
}//배열에 값 넣어주는 for문
for(int i=0; i<100; i++)
System.out.println();
//출력시 100줄 미는 for문
for(int i=0; i<lotto.length; i++) {
System.out.printf("%d",lotto[i]);
if(i!=5)
System.out.print(",");
}System.out.println();
Thread.sleep(2000);//출력for문
//자리가 바뀌는거는 계속 반복되니까 반복문으로..
//반복되는걸 찾고(중복제거...) 어떻게 반복문으로 바꿀지..
for(int i=0; i<5; i++) {//배열의길이는 6인데 i<5인 이유는, 총 바뀌는 횟수가 5번이라서 0~4.로또 배열의 길이로 하면 길이 초과했다고 오류남
//계속 자리를 바꿔줘야하니까 이부분이 메인이 되는 for문을 생성한것
//앞의 값이 뒤의 값보다 클때만 바꾼다
if(lotto[i+1]<lotto[i]) { //부등호 방향을 바꾸면 작은값이 맨 뒤로간다
int tmp = lotto[i];
lotto[i] = lotto[i+1];
lotto[i+1] = tmp;
}
for(int j=0; j<100; j++)
System.out.println();
//출력시 100줄 미는 for문
for(int k=0; k<lotto.length; k++) {
System.out.printf("%d",lotto[k]);
if(k!=5)
System.out.print(",");
}System.out.println();
Thread.sleep(2000);
//출력for문
}
- 버블정렬: 제일 큰 수부터 작은 수까지 정렬하는것 (큰놈이 수면위로 뽀골뽀꼴 올라간다...)
<버블 정렬법>
for(int i=0; i<5; i++) {
for(int j=0; j<5-i; j++)//5-i를 하는 이유는 이미 찾아낸 숫자니까 빼주는것.
//ex)0번째와1번째를 비교함 > 0번째는 이미 비교가 되고 그에대한 결과가 나와서 또 반복될 필요가 없음 (다음은 1,2번째 비교니까)
if(lotto[i+1]<lotto[i]) {
int tmp = lotto[i];
lotto[i] = lotto[i+1];
lotto[i+1] = tmp;
}
for(int j=0; j<100; j++)
System.out.println();
//출력시 100줄 미는 for문
for(int k=0; k<lotto.length; k++) {
System.out.printf("%d",lotto[k]);
if(k!=5)
System.out.print(",");
}System.out.println();
Thread.sleep(2000);
//출력for문
}
- 버블정렬법 그림 설명 > https://datamoney.tistory.com/237
[정렬 알고리즘] 버블 정렬
2021.08.23 - [자료구조 & 알고리즘] - [알고리즘] 정렬 📎 버블 정렬 버블 정렬은 맨 끝단부터 이웃한 두 요소의 비교-교환의 과정을 진행하며 정렬하는 알고리즘이다. 버블정렬의 과정 정렬되지 않
datamoney.tistory.com
728x90
'국비수업 > 수업정리' 카테고리의 다른 글
파일 입출력 (0) | 2023.03.02 |
---|---|
웹퍼블리싱(CSS) / 1 (0) | 2023.02.28 |
웹퍼블리싱(HTML) / 2 (0) | 2023.02.25 |
배열 (0) | 2023.02.23 |
switch문 (0) | 2023.02.22 |