야나도 프로젝트

나도 개발자 될수있어

JAVA

중복값 판단 알고리즘

jmeen 2021. 8. 16. 10:08
728x90

 

예전 로또번호 생성기 할때와 같은것인데, 로또는 전체 수중 같은것이 있으면 안되는것이고, 이번엔 바로 전수이다.

물론 같은 맥락으로 로또번호도 같은 문법으로 고칠수 있을것 같다.

 

1. 예전에 배워서 썻던 코드. 

-- for문이 일단 돈다. 

-- nums[i] 값이 nums[i-1] 값과 같으면 i를 전단계로 돌려서 다시 한번 실행하게끔 하는 방법이다.

-- i값이 2이상이 되어야 된다.

		for (int i = 0; i < nums.length; i++) {
			nums[i] = 1 + rand.nextInt(10);

			if (i > 1 && nums[i - 1] == nums[i]) {
				i--;
				continue;
			}
		}

 

2. 교재에서 알려준 코드.

- num[0]에 먼저 값을 대입한다.

- 그리고 나서 반복문을 돌리는데, 안에 do-while문이 있다.

- 만약 전것과 같으면, do-while문 반복

		nums[0]= 1 + rand.nextInt(10);
		for (int i = 1; i < nums.length; i++) {
			do {
				nums[i] = 1 + rand.nextInt(10);
			} while (nums[i] == nums[i - 1]);
		}

 

두 방식 모두 결과값은 잘 나온다.

둘다 알고 있으면 언젠가 도움이 될 것 같다.

 

전체 수에서 중복값 방지는 다음 포스팅을 참고하자.

난수 중복 방지 알고리즘 - 2 (tistory.com)

'JAVA' 카테고리의 다른 글

JAVA 시프트연산자  (0) 2021.08.19
난수 중복 방지 알고리즘 - 2  (0) 2021.08.16
알쏭달쏭자바200제 : 읽은 갯수만큼 별찍기  (0) 2021.08.14
Servlet & JSP  (0) 2021.08.11
Java Network and Thread  (0) 2021.08.11