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; } }