본문 바로가기
2023년 이전/Codility

Codility - Lesson 4 PermCheck

by JeongUPark 2019. 11. 12.
반응형

자세한 문제는 여기서 확인하시면 됩니다.

 

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