알고리즘/codility

Lesson 4 Counting Elements PermCheck 나만의풀이

친구들안녕 2021. 6. 2. 10:20

문제

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].

대충 해석하자면 N개로 이루어진 비어있지 않은 A가주어지고

A는 순열로 1부터 N까지 오직 1번만 들어가는 수이다.

순열이면 1 아니면 0을 반환하라

 

첫번째 시도

아무리 문제가 쉽다고 나와있지만 이렇게 쉬운게 말이되나...?

조금 고민하다가 에라 모르겠다 하면서 커밋눌렀다.

def solution(A):
    A.sort()
    for i in range(1, len(A)+1):
        if A[i-1] != i:
            return 0

    return 1

 

 

어라 성공이네...?

너무 쉬워서 조금 고민하던 문제다 ㅋㅋ