0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
def solution(numbers):
answer = 0
one = []
for i in range(0, 9+1):
one.append(i)
if len(one - numbers)>=0:
for a in (one - numbers):
int(a)
answer = sum(a)
return answer
answer 변수와 one 리스트 변수를 만들고, one 리스트에 0~9까지의 숫자를 추가했다.
이후 one 리스트에서 numbers 리스트를 빼면, one 리스트에 없는 numbers의 요소들이 나올 것이라 생각했다. 그 요소들을 구하고자 a 변수를 만들고 sum 함수로 더했다.
def solution(numbers):
answer = 0
one = []
for i in range(0, 9+1):
one.append(i)
answer = set(one) - set(numbers)
return sum(answer)
리스트를 집합변수로 type 변환을 한 후에 sum 함수로 더했다.
def solution(numbers):
one = [i for i in range(0, 9+1)]
other = [x for x in one if x not in numbers]
return sum(other)
한 줄로 줄여보았다.
def solution(numbers):
return 45 - sum(numbers)
문제에 맞는 함수를 만들어냈다.
통용되는 식은 아니지만 이렇게 논리식이 아닌 수학식으로도 풀 수 있다는 포인트를 알게 되었다.
solution = lambda x: sum(range(10)) - sum(x)
람다를 활용해 간단하게 문제에 쓰이는 함수를 적용하고 만들어냈다.
람다식의 맨 뒤에는 사용하는 배열의 이름을 적어야 하는 줄 알았는데, 적지 않아도 배열이 적용된다는 것을 새롭게 알게 되었다.
함수를 만들 때 def 이후 return이 나오지 않아도 된다는 포인트를 알게 되었다.
def solution(numbers):
answer=0
for i in range(1,10):
if i not in numbers:
answer += i
return answer
range를 활용하고 numbers 리스트에 range의 요소인 i가 없으면 answer에 i를 추가한다. not in
을 사용하였다.
정석적인 답안.