-
(코딜리티) Lesson 3 : PermMissingElem - PythonAlgorithm/코딜리티 2021. 1. 17. 16:47
문제를 보는 순간, 수학적으로 풀 수 있겠다 생각하여 나름 수학적(?)으로 풀었습니다.
문제 : app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/
문제 설명
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라고 할 수 있습니다.
'Algorithm > 코딜리티' 카테고리의 다른 글
(코딜리티) Lesson 4 : FrogRiverOne - Python (0) 2021.01.17 (코딜리티) Lesson 3 : TapeEquilibrium - Python (0) 2021.01.17 (코딜리티) Lesson 3 : Frogjmp - Python (0) 2021.01.17 (코딜리티) Lesson 2 : OddOccurrencesInArray - Python (0) 2021.01.17 (코딜리티) Lesson 2 : CyclicRotation - Python (0) 2021.01.16 댓글