본문 바로가기

PROGRAMMING/예제

[Java] 중복되지 않는 숫자만 배열에 집어넣고 싶은 사람만 보세요

public class Example {

	public static void main(String[] args) 
	{

		int [] array = new int [10];
		
		for(int i = 0; i < array.length; i++)
		{
			int r = (int) (Math.random() * 100 + 1); // 1~100 사이의 정수 만들기
			
			array[i] = r;
			
			for(int j = 0; j < i; j++) // 현재 배열의 현재 인덱스 이전까지의 요소들을 검사
			{
				if(array[j] == array[i])
				{
					System.out.println("중복된 숫자가 나왔어요..."); // 체크용으로 일단 집어넣는다.
					i--; // 새 멤버가 들어있는 곳의 인덱스를 다시 사용하기 위해서 i를 1 뺀다.
					break; // 멈춰! -> 다음 요소들은 중복 되든지 말든지 볼 가치도 없다!
				}
			}
		}
		
		System.out.print("결과 : ");
		for(int i = 0; i < array.length; i++)
		{
			System.out.print(array[i] + " ");
		}
		System.out.println();
	}

}

이 코드는 중복되지 않는 숫자만 배열에 집어넣기 위한 로직입니다.

 

간단히 설명하자면 새 멤버와 구 멤버들의 비교를 통해서 혹시 새 멤버와 구 멤버가 같다면 새 멤버를 가입 취소시키는 방법입니다.

 

중복되는 숫자가 걸리지 않았다면 아래 그림처럼,

깔-끔

중복되는 숫자가 걸려서 다시 난수를 생성했다면 아래 그림처럼 실행됩니다.

'중복된 숫자가 나왔어요...'가 나오는 횟수는 실행시마다 달라집니다. (0회 이상)