Algorithm/코딜리티

(코딜리티) Lesson 3 : PermMissingElem - Python

casim 2021. 1. 17. 16:47

문제를 보는 순간, 수학적으로 풀 수 있겠다 생각하여 나름 수학적(?)으로 풀었습니다.

 

문제 : app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/

 

PermMissingElem coding task - Learn to Code - Codility

Find the missing element in a given permutation.

app.codility.com

문제 설명

N개의 다른 정수를 가진 A배열이 주어질 때, 범위는 1~N+1범위의 정수를 가집니다. 이 의미는 하나의 요소가 없다는 뜻입니다.

 

예를 들어, [2, 3, 1, 5]가 주어질 때, N은 4이며 missing element로는 4를 return해야 합니다.

제한 사항

N은 0~100,000사이의 정수입니다.

A의 요소들은 모두 구별됩니다.

A의 요소들은 1~N+1사이의 정수를 가집니다.

코드

def solution(A):

    N = len(A) + 1
    S = N*(N+1)/2
    s = sum(A)

    return int(S-s)

해설

하나의 요소가 빠지기 전의 합을 구하고, 하나의 요소가 빠진 A의 합을 구하여 두 개를 빼면 남는 그 숫자가 missing element라고 할 수 있습니다.