https://school.programmers.co.kr/learn/courses/30/lessons/86051
우선 numbers의 원소를 set에 담아두고, 없는 숫자를 찾아 합을 구하는 naive한 방식으로 풀 수 있다.
좀 더 최적화된 해법을 찾기 위해 문제의 조건에 주목하자.
0부터 9까지 모두 있는 배열의 합을 구하면 45이다. numbers에 1이 없다면 sum(numbers)
는 44, 1과 4가 없다면 40이 될것이다. 배열에 중복이 없기 때문에 sum(numbers)
은 없는 숫자의 합 만큼만 줄어든다.
따라서 답은 45 - sum(numbers)
과 같다.
def solution(numbers):
return (1+2+3+4+5+6+7+8+9) - sum(numbers)