끄적끄적
Codility Lesson4 - PermCheck 본문
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 |