본문 바로가기
코딩테스트/python

프로그래머스 lv1 없는 숫자 더하기

by 앵유짱 2023. 8. 25.

문제 설명

0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.

 

제한사항

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 원소 ≤ 9
  • numbers의 모든 원소는 서로 다릅니다.

 

입출력 예

numbers result
[1,2,3,4,6,7,8,0] 14
[5,8,4,0,6,7,9] 6

 


 

 

나의 풀이는

list와 map을 사용해서 check list를 만들어주엇다

set으로 차집합해서 sum함

def solution(numbers):
    check_list = list(map(int,range(0,10)))
    answer = sum(set(check_list)-set(numbers))
    return answer

 

다른 고수의 풀이1

간단하고 잘 풀엇지만 넘 수학으로 날먹한 듯하다

def solution(numbers):
    return 45 - sum(numbers)

 

다른 고수의 풀이2

고수풀이는 한 개씩만 가져오려고 했는데

이 분은 lambda를 사용해서 잘 푼 것 같아서 가져왔다

solution = lambda x: sum(range(10)) - sum(x)