Algorithm

길이가 n인 배열에 1부터 n까지 숫자 중복 확인

OOOooOOoo·2018년 4월 30일·조회 8,726

1. 문제

길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.

1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수를 완성해주세요.


2. 코드

public class NumberArrayCheck {
        public static void main(String[] args) {
                NumberArrayCheck nac = new NumberArrayCheck();
                System.out.println(nac.check(new int[]{1,2,3,4,5,6,7,8,9}));
                System.out.println(nac.check(new int[]{1,2,3,3,5,6}));
                System.out.println(nac.check(new int[]{1,2,3,4,5,10}));
        }

        private boolean check(int[] numArray) {
                boolean result = true;

                boolean[] checkArray = new boolean[numArray.length+1];

                for ( int inx=0; inx<numArray.length; inx++ ) {
                        if ( numArray[inx] <= numArray.length && !checkArray[numArray[inx]] ) {
                                checkArray[numArray[inx]] = true;
                        } else {
                                result = false;
                                break;
                        }
                }

                return result;
        }
}

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.