오류노트 - array 숫자배열 섞기

728x90

자주 틀리는 오류 코드 - array 숫자 섞기

복권 알고리즘으로 45개의 array를 중복값없게 1000번 섞는 알고리즘

 

int r = random.nextInt(44)+1;
for(int i = 0; i<1000; i++) {
    int tmp = lotto[0];
    lotto[0] = lotto[r];
    lotto[r] = tmp;
    }
            
for(int i = 0; i<1000; i++) {
    int r = random.nextInt(44)+1;
    int tmp = lotto[0];
    lotto[0] = lotto[r];
    lotto[r] = tmp;
    }
  • 문제점: random 메소드를 반복하지 않아 같은 인덱스만 변경되는 문제점
  • 항상 random.nextInt() 메소드를 for 반복문 밖에 넣어서 랜덤숫자가 변하지 않았음
  • for 반복문 안에 random 메소드를 넣어서 랜덤 숫자를 매번마다 변하게 하니 섞는 배열의 인덱스 값이 달라져 코드 오류없이 실행완료
728x90