-
(코딜리티) Lesson 4 : MissingInteger - PythonAlgorithm/코딜리티 2021. 1. 19. 20:19
문제 : app.codility.com/programmers/lessons/4-counting_elements/missing_integer/
문제 해설
N개의 배열인 A가 주어질 때, A에 속해있지 않은 양수중에 제일 작은 값을 구하시오
예를 들어,
A = [1, 3, 6, 4, 1, 2]인 경우, return 5
A = [1, 2, 3]인 경우, return 4
A = [-1, -3]인 경우, return 1
제한사항
- N은 1~100,000 사이의 정수이다.
- A의 각 요소는 -1,000,000 ~ 1,000,000 이다.
코드
def solution(A): A = sorted(A) #순서대로 정렬 후 for문을 위함 # 정렬 한 후 마지막 값이 1보다 작은 경우는 무조건 1 if A[-1] < 1: return 1 p = 0 #중복되어 있는 경우는 바로 넘기기 위함 for i in A: if i < 1 or p == i: continue # 배열 A가 연속적인 숫자로 이루어지지 않은 경우 바로 멈추고 return if p+2 <= i: p = p+1 break # 배열 A가 중간에 멈추지 않고 끝까지 간 경우 마지막 숫자 +1 if A[-1] == i: p = i+1 break p = i return p
해설
이 문제는 비교적 쉬워서 주석내용만 있어도 충분히 이해하실 듯 합니다.
'Algorithm > 코딜리티' 카테고리의 다른 글
(코딜리티) Lesson 5 : CountDiv - Python (0) 2021.01.19 (코딜리티) Lesson 4 : PermCheck- Python (0) 2021.01.19 (코딜리티) Lesson 4 : MaxCounters - Python (0) 2021.01.18 (코딜리티) Lesson 4 : FrogRiverOne - Python (0) 2021.01.17 (코딜리티) Lesson 3 : TapeEquilibrium - Python (0) 2021.01.17 댓글