문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
def solution(numbers):
arr = [0,1,2,3,4,5,6,7,8,9]
answer = -1
for num in arr:
if (num not in numbers):
answer += num
if (answer != -1):
answer += 1
return answer
for loop을 사용해서 한번 given array를 훑어보는 방식을 사용했다.. if else 문을 크게 쓸 수도 있었는데 뭔가.. 나는 indent 많이 되는걸 싫어해서 최소한의 indent로 하고자 마지막 부분에 if만 넣어줬다
def solution(numbers):
return 45 - sum(numbers)
보자마자 감탄한 풀이...
진짜.. 생각조차 못했다. 없는 숫자 자체가 아니라 숫자의 합만을 구하는거니까 당연히. 저렇게 해도 된다..
0~9를 모두 더했을때 합인 45에서 주어진 숫자들의 합만큼만 없애는 방법.
solution = lambda x: sum(range(10)) - sum(x)
람다..역시.. 최고.... ㅋㅋㅋㅋㅋ 간단한 함수를 짜는데에는 이게 최고인것 같다.
def solution(numbers):
return sum([i for i in [1,2,3,4,5,6,7,8,9,0] if i not in numbers])
간단하게 if 랑 not 을 이용해서도 짤 수 있었다. 다른 문제에서 한번 썼던 문법인데 까먹었음.. 휴..