안녕하세요! 오늘은 한 문제 더 포스팅하려고 왔습니다! 이번 문제도 생각보다는 쉬운 문제였던 것 같습니다.(2-2가 너무 어려운 것 같습니다. 혹시 풀다 좋은 방법 있으시면 공유 바랍니다!!)
이전 코딩 내용이 궁금하시다면 아래 링크로 이동하시면 됩니다!
코딜리티 이전 글 - 2020/07/16 - [파이썬] - [Codility] 코딜리티 3-1. Frogjmp (Python)
1. 문제 설명
- A에는 N개의 다른 값(음수 미포함)들이 들어 있습니다.
- 정수들의 범위는 range(1, len(A)+1)와 같습니다. 그중에 비어 있는 1개의 원소를 찾는 것이 목표입니다.
- 예시 : A[0] = 2 , A[1] = 3, A[2] = 1, A[3] = 5, return 4
2. 풀이
- idea : 원소가 없는 Array일 경우 1을 return 값으로 주고, Array length가 1 이상인 경우에는 range(1, len(A)+2)의 합에서 sum(A) 값을 빼면 그게 Missing element라고 생각했습니다.
def solution(A):
if len(A) == 0:
result = 1
else :
result = sum(range(1, len(A)+2)) - sum(A)
return result
3. 결과
- 처음부터 위에 보이는 것처럼 간단한 코드를 만든 것은 아니었습니다
- 경우를 나눠서 생각해보니, len(A)가 1일 때도 일반적으로 else로 묶을 수 있어서 동일하게 코딩했더니 다음과 같은 결과를 얻었습니다.
- 문제를 풀었다고 끝나지 말고 한번 더 고민해보고 깔끔한 코드를 만들어 보면 좋을 것 같습니다. (그나저나 2-2도 포스팅해야 하는데...)