자바 배열에서 자기자신의 원소를 서로 비교하려면 어떻게 하나요

조회수 1510회

int arr[] = new int[6];

for (int k = 0; k < 5; k++)

             {
                arr[k] = (int)(Math.random()*100);

            }

for(int s = 0;s<5;s++)

            {

             while(arr[s] == 0)
                    {
                     arr[s] = (int)(Math.random()*100);
                     }


                        while(arr[s] == arr[s+1]) 
                                {
                            arr[s+1] = (int)(Math.random()*100);

                            System.out.print("바뀜 ");
                                }




            }

arr 배열을 생성해서 랜덤번호를 집어 넣은후 각원소가 서로 다르게 만들려고 합니다. 그래서 S번쨰와 S+1번째를 비교하여 같으면 다른 숫자가 나올때까지 만드는 코딩인데 같은 숫자가 들어간 배열이 나오네요 어떻게 하면 될까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • while(arr[s] == 0)
    {
      arr[s] = (int)(Math.random()*100);
    }
    

    이 부분은 잘 모르겠으니 넘어가고.

    같은 숫자가 나오는 이유는요,

    지금 인접한 인덱스끼리만 비교하는데

    • 인덱스 0번과 1번이 다르고
    • 1번과 2번이 다르다고 해서
    • 0번과 2번이 다르다는 보장이 없습니다.

    위 로직을 유지하시려면 랜덤 숫자를 하나 뽑아내면 그 때마다 배열의 모든 원소를 다 비교해야 해요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)