[Codility] Lesson4 PermCheck 풀이 Python
OnlineJudge

[Codility] Lesson4 PermCheck 풀이 Python

반응형

 

문제로이동

 

PermCheck coding task - Learn to Code - Codility

Check whether array A is a permutation.

app.codility.com


목차

     

     


     


    문제 설명

    N개의 정수 배열 A가 주어집니다. 단, 중복되는 수는 없으며 연속되지 않는 정수를 찾아내는 문제입니다.

    두 가지 상황을 예로 들자면,

     

    A[0] = 4

    A[1] = 1

    A[2] = 3

    A[3] = 2

     

    위 Example의 경우 총 4개(최대 4)의 정수가 주어졌으며 1부터 4까지 모든 수가 존재합니다.

    반대의 경우를 봅시다.

     

    A[0] = 4

    A[1] = 1

    A[2] = 3

     

    위 Example의 경우 총 3개(최대 4)의 정수가 주어졌으며 2를 제외한 모든 수가 존재합니다.

     

    이 때, N까지 모든 수가 사용되었다면 1을 반환하고, 그렇지 않다면 0을 반환해야 합니다.

    접근 방법

    Sort를 이용하여 정렬한 후 이전 Index와 현재 Index를 비교했을 때 1씩 차이가 난다면 연속된 수, 그렇지 않다면 연속되지 않은 수이기 때문에 이 성질을 이용하여 반복문을 수행합니다.

     

     


    소스 코드

    Python

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

    Java8

    #
    반응형