본문 바로가기
Language/알고리즘 문제풀이

프로그래머스 순열 검사 자바 문제풀이

by wakestand 2021. 11. 17.
반응형

프로그래머스 순열 검사

 

다음 문제는 int 배열을 받아

1부터 배열의 길이에 해당하는 숫자가

모두 들어있을 경우에는 true

 

그렇지 않거나 중복 값이 들어있을 경우에는

false를 반환하면 되는 문제인데

풀이방법은 아래와 같다

 

먼저 배열의 크기와 배열에 들어있는 값으로

true / false를 반환해주면 되기 때문에

 

배열을 오름차순으로 정렬시킨 뒤

for 문을 돌려보면

arr[0] > 1

arr[1] > 2

이런 식으로 값이 나오게 될텐데

 

배열은 0부터 시작하고

배열 안의 값은 1부터 시작하기 때문에

 

배열의 각 값과 i + 1이 같을 경우에는 패스

아닐 경우에는 배열에 중복 값이 들어있거나

혹은 배열에 잘못된 값이 들어있기 때문에

바로 false를 리턴시켜주면 된다

 

예제에 사용한 코드는 아래와 같다

 

import java.util.Arrays;

class Solution {
    public boolean solution(int[] arr) {
        boolean answer = true;
        Arrays.sort(arr); // 배열 오름차순 정렬

        for(int i = 0; i<arr.length; i++) {
            if(arr[i] != i+1) {
                answer = false;
                break;
            }
        }
        return answer;
    }
}
반응형

댓글