안녕하세요! 코딜리티를 하면 할수록 효율적인 코드에 대한 고민을 하게 하는 것 같습니다. 오늘도 좋은 참고가 될 수 있기를 바랍니다!
이전 코드 내용이 궁금하시다면 아래 링크로 이동하시면 됩니다!
코딜리티 이전 글 -2020/07/20 - [데이터 분석/파이썬] - [Codility] 코딜리티 4-2. Maxcounters (Python)
1. 문제 설명
-
A에는 N개의 양의 정수들이 들어 있는 데 그 중에 빠진 양의 정수를 출력하는 것이 문제입니다.
-
A에는 음의 값들도 들어갈 수 있으며, 중복도 가능합니다.
-
예시 : A = [1, 2, 3] 이라면 4를 출력해주면 됩니다.
A = [-1, -3] 이라면 1을 출력해줍니다. (가장 낮은 양의 정수 값)
def solution(A):
A = list(set(A)) # 중복제거
A.sort() # 오름차순 정렬
count = A[0]
if count > 1:
return 1
for i in A:
if count == i:
count +=1
result = count
else :
result = count
break
if result <= 0:
result = 1
return result
3. 1차 결과
4. 2차 풀이
- idea : missingdata를 1이라는 값으로 고정시키고, 만약 1이 i랑 같으면 +1 해주는 식으로 계산하였음.
def solution(N, A):
A.sort()
A = list(set(A))
missingdata = 1
for i in A:
if i == missingdata :
missingdata +=1
return missingdata
5. 2차 결과