본문 바로가기
Java/기본 개념 및 클래스

[Java] 36. 배열 활용: 랜덤 숫자 생성기

글: Song hyun 2024. 4. 22.
728x90
반응형

[Java] 36. 배열 활용: 랜덤 숫자 생성기

 

문제.

배열(Array)와 이중 for문을 응용해, 다섯 개의 중복되지 않는 랜덤한 수(0~45 사이)를 생성, 출력하라.

 

 

풀이 과정:

(1) int[] numbers=new int[6]; 를 통해, 정수형 변수 6개를 담는 배열을 만든다.

(2) Random random=new Random();을 통해 랜덤한 수를 만들수 있게 세팅한다.

(3) 랜덤한 수가 중복될 경우, 카운트 하기 위해 정수형 변수 count 를 선언한다.

 

(4) 첫번째 for문에서는 6개의 난수(=랜덤한 수)가 생성되도록 

int num=random.nextInt(45)+1

numbers[i]=num;을 선언한다.

(5) 두번째 for문에서는 랜덤하게 생성된 수 6개가, 이전에 생성된 난수와 중복되지 않는지 체크한다.

만약 중복되는 수가 있다면, 다시 수를 생성한다.

public static void makeNumbers() {
		int[] numbers = new int[6];
		Random random = new Random();
		int count=0;

		for (int i = 0; i < 6; i++) {
			int num = random.nextInt(45) + 1;
			for(int a=0; a<6; a++) {
				if(numbers[a]==num) {
					num=random.nextInt(45)+1;
					count++;
				}
			}
			numbers[i]=num;	
		}
		System.out.print(numbers[0]+"\t");
		System.out.print(numbers[1]+"\t");
		System.out.print(numbers[2]+"\t");
		System.out.print(numbers[3]+"\t");
		System.out.print(numbers[4]+"\t");
		System.out.println(numbers[5]+"\t");
		System.out.print("중복된 횟수는 "+count);
	}
728x90
반응형