Algorithm/Codility
[코딜리티/Java] PermCheck
wavid
2020. 12. 28. 01:06
배열 A에 1 ~ N까지의 숫자가 들어가있는데, 이 숫자들이 1부터 N까지 이루는 순열인지 아닌지를 판단하는 문제.
중간에 빠진 값이 있거나 하는 경우 0을 반환하고, 모든 숫자가 포함된 순열인 경우 1을 반환하면 되는 문제.
class Solution {
public int solution(int[] A) {
// 소팅하고
Arrays.sort(A);
// 순차적으로 빠진 값이 있는지 체크
for (int i = 0; i < A.length; i++) {
// 빠진 값이 있으면 0을 반환
if (A[i] != (i + 1)) {
return 0;
}
}
// 없으면 1 반환
return 1;
}
}
A를 오름차순으로 정렬하고 처음부터 돌면서 각 A의 값이 index+1와 같은지 아닌지 비교 후 아닌 경우 그 값이 빠진 것이므로 0을 반환하고 다 확인 후에 없는 경우 1을 반환하도록 구현함.