[프로그래머스] Lv1_없는 숫자 더하기

박선영·2023년 10월 11일
0
post-thumbnail

Lv1_없는 숫자 더하기

📄Description

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

제한 조건

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

입출력 예시

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

입출력 예 설명

  1. 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
  2. 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

🤔생각 정리

  1. 리스트 간 뺄셈 연산은 불가능 하니까 집합의 차집합을 사용하면 되겠네.

💡Pseudo Code💡

1. 0~9까지의 집합 - numbers 집합
2. return 차집합 모든 원소의 합

🖥️코드화

def solution(numbers):
    return sum(set(range(10)) - set(numbers))

📌코드 비교 및 감상

  1. 자연수의 합 활용
    0부터 9까지 모든 자연수의 합이 45이기 때문에 numbers의 합에서 빼면 없는 요소의 합이 된다.
    코드는 간단해 보이지만 45라는 수는 하드코딩이기 때문에 선호하지는 않는다.
def solution(numbers):
    return 45 - sum(numbers)

  1. lambda 함수 활용
    단순한 함수이기 때문에 간단하게 lambda를 활용해서 함수를 정의할 수 있다.
solution = lambda x: sum(range(10)) - sum(x)
profile
데이터를 만지는 사람

0개의 댓글