반응형
자세한 문제는 여기서 확인하시면 됩니다.
1부터 시작하는 간단하게 순열인지 아닌지 확인 하는 문제입니다.
fun solution(A: IntArray): Int {
// write your code in Kotlin
var B = BooleanArray(A.size)
for(i in A.indices){
if(A[i] > B.size){
return 0;
}
B.set(A[i]-1,true)
}
for(i in B.indices){
if(B[i] == false){
return 0;
}
}
return 1;
}
우선 1부터 시작하기 때문에 A 배열의 값중 A배열의 사이즈보다 큰 값이 있을 경우 순열이 아니게 됩니다. 이유는
A 배열의 크기가 3일 경우 A배열이 순열이려면 {1,2,3}되어야 하는데 4가 있을 경우 1,2,3중 한개가 없고 4가 들어가 있기 때문입니다.
그리고 동일한 크기의 Boolean배열의 각 위치에 값을 넣고 없는 값이 있을 경우 그 역시 순열이 아니게 됩니다.
위의 두가지 경우가 아닐 경우 순열 입니다.
반응형
'2023년 이전 > Codility' 카테고리의 다른 글
Codility - Lesson 4 MaxCounters (0) | 2019.11.14 |
---|---|
Codility - Lesson4 FrogRiverOne (0) | 2019.11.14 |
Codility - Lesson 3 TapeEquilibrium (0) | 2019.11.11 |
Codility - Lesson3 PermMissingElem (0) | 2019.11.08 |
Codility - Lesson 3 FrogJmp (0) | 2019.11.07 |