강의로 돌아가기
S-Onix

순열 질문입니다!

class Solution {
    public boolean solution(int[] arr) {
        boolean answer = true;
        boolean [] checkArray = new boolean[arr.length];

        for(int i = 0; i < checkArray.length; i++){
            checkArray[i] = false;
        }

        for(int i = 0; i < checkArray.length ; i++){
            if(arr[i] <= arr.length) checkArray[arr[i]-1] = true;
            else return false;
        }
        for(int i = 0; i < checkArray.length; i++){
            if(!checkArray[i]) return false;
        }

        return answer;
    }
}

이렇게 코드를 작성했는데 한가지 테스트케이스에서 실패한다고 하는데 제 머리를 굴려도 어느케이스에 실패가 됬는지 잘 모르겠습니다 고수님들 답변부탁드립니다!

1 개의 답변
Demi

안녕하세요.
지문에 제한조건 배열의 원소는 10만 이하인 자연수입니다.가 잘못되어있었습니다.
실제 테스트케이스에는 0이 포함되어 있었네요.

따라서 checkArray[arr[i]-1] 에서 index error 가 발생한 것 같습니다. ( -1번째 인덱스에 접근하므로 에러가 발생합니다. )
조건이 실제 테스트와 같도록 지문을 배열의 원소는 0 이상 10만 이하인 정수입니다.로 수정해두었습니다.

이를 참고하시어 코드를 수정해보세요.
감사합니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.