끄적끄적

Codility Lesson4 - PermCheck 본문

Codility Lessons

Codility Lesson4 - PermCheck

kminx 2023. 9. 18. 14:18

Codility Lesson4 - PermCheck

https://app.codility.com/demo/results/trainingNPNR9A-F3P/

 

Test results - Codility

A non-empty array A consisting of N integers is given. A permutation is a sequence containing each element from 1 to N once, and only once. For example, array A such that: A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2 is a permutation, but array A such that: A[0] =

app.codility.com

 

문제

A non-empty array A consisting of N integers is given.

A permutation is a sequence containing each element from 1 to N once, and only once.

For example, array A such that:

A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2

is a permutation, but array A such that:

A[0] = 4 A[1] = 1 A[2] = 3

is not a permutation, because value 2 is missing.

The goal is to check whether array A is a permutation.

Write a function:

def solution(A)

that, given an array A, returns 1 if array A is a permutation and 0 if it is not.

For example, given array A such that:

A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2

the function should return 1.

Given array A such that:

A[0] = 4 A[1] = 1 A[2] = 3

the function should return 0.

Write an efficient algorithm for the following assumptions:

  • N is an integer within the range [1..100,000];
  • each element of array A is an integer within the range [1..1,000,000,000].

 

정답

def solution(A):
    s=0

    for idx,value in enumerate(A):
        if (idx+1) in A:
            s+=1
            if s==len(A):
                return 1
    
    return 0

 

결과

-> 시간이 너무 오래걸림. for문이나 if문 둘 중 하나 제거 필요. 아예 다른 방식으로 접근 시도


정답-Retry

def solution(A):
    s=0
    length=len(A)

    A=set(A)

    if len(A)==length and max(A)==length:
        return 1

    return 0

결과-Retry

'Codility Lessons' 카테고리의 다른 글

Codility Lesson4 - MissingInteger  (0) 2023.09.19
Codility Lesson4 - MaxCounters  (0) 2023.09.18
Codility Lesson4 - FrogRiverOne  (0) 2023.09.14
Cobility Lesson3 - TapeEquilibrium  (0) 2023.09.14
Cobility Lesson3 - PermMissingElem  (0) 2023.09.13