반응형
프로그래머스 순열 검사
다음 문제는 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;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 전화번호 목록 자바 문제풀이 (0) | 2021.10.29 |
---|---|
프로그래머스 완주하지 못한 선수 자바 문제풀이 (0) | 2021.10.28 |
프로그래머스 피보나치 수(Java) (0) | 2019.10.16 |
프로그래머스 짝지어 제거하기(Java) (0) | 2019.10.16 |
프로그래머스 N개의 최소공배수(Java) (0) | 2019.09.29 |
댓글