📝 문제
> 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
https://programmers.co.kr/learn/courses/30/lessons/86051
코딩테스트 연습 - 없는 숫자 더하기
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
programmers.co.kr

🎨 풀이
💡 첫번째 시도 = 성공
def solution(numbers):
answer = -1
answer = 45-sum(numbers)
return answer
> 0부터 9까지의 숫자가 겹쳐지 않고 있다는 것에서 힌트를 얻어 풀었다.
result에는 numbers에 포함되지 않은 숫자의 합이다.
numbers에는 0부터 9까지의 숫자가 들어가야한다. 0부터 9까지 숫자의 합은 45이다.
생각해보면, numbers에 들어가지 않은 숫자의 합 + numbers에 포함되어있는 숫자의 합 = 45가 되어야한다. (여기서 numbers에 들어가지 않은 숫자의 합은 result다)
식으로 정리를 하면 다음과 같다.

첫번째 입출력을 예시로 들어보자면, numbers의 합은 31이 나온다. 0부터 9까지 다 들어있다면 45가 나와야하는데, 합쳐서 14가 될 만큼의 숫자가 빠져있다는 뜻이다. 그래서 14가 answer에 들어간 것이다.
⭐ 느낀점
> 좀 그래도 기발했다고 생각한다. '0부터 9까지 숫자가 겹치지 않고 하나씩 들어있어야한다' 에 주목했더니 아이디어가 좀 생각이 났다. 제한사항을 잘 읽어보고 생각해야겠다. 종종 숫자 범위 큰 걸 놓치곤 하는데 이 부분에 조금 더 집중을 해줘야할 것 같다.
'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 1] 내적 (파이썬) (0) | 2022.04.03 |
---|---|
[프로그래머스 / Level 1] 음양 더하기 (파이썬) (0) | 2022.04.02 |
[프로그래머스 / Level 1] 숫자 문자열과 영단어 (파이썬) (0) | 2022.03.31 |
[프로그래머스 / Level 1] 신규 아이디 추천 (파이썬) (0) | 2022.03.30 |
[프로그래머스 / Level 1] 로또의 최고 순위와 최저 순위 (파이썬) (0) | 2022.03.29 |