코딩테스트 연습 - 없는 숫자 더하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
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 |
풀이
아이디어:
1. [0,1,2,3,4,5,6,7,8,9] 에서 numbers에 없는 것 제거하기,
2. 변수에 umbers에 없는 숫자들만 누적합 구하기
3. 0 ~9 전체 합에서 numbers 합 빼기,
4. 집합으로 바꾼 뒤, 차집합으로 없는 숫자 구하기
# 1
def solution(numbers):
a = [0,1,2,3,4,5,6,7,8,9]
for i in numbers:
if i in a:
a.remove(i)
answer=sum(a)
return answer
-> a 리스트에서 numbers에 존재하는 값이 있으면 제거해준 뒤, 남은 값들만 더하기
# 2
def solution(numbers):
a = [0,1,2,3,4,5,6,7,8,9]
answer = 0
for i in a:
if i not in numbers:
answer += i
return answer
-> answer=0을 생성한 뒤, a 리스트의 요소 중 numbers에 포함되지 않는 값만 answer에 더해주기.
# 3
def solution(numbers):
answer = 45-sum(numbers)
return answer
-> numbers의 길이는 9이하이고, 모든 원소는 서로 다르다는 조건이 있기 때문에
0~9 의 합인 45에다가, numbers의 총 합을 빼준다.
# 4
def solution(numbers):
answer = set([0,1,2,3,4,5,6,7,8,9]) - set(numbers)
return sum(answer)
-> 집합으로 만들어준 뒤, 차집합을 이용한다. 그러면 numbers의 원소와 공통되지 않는 원소만 남게된다.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv.1] 내적 (Python) (0) | 2024.07.10 |
---|---|
[프로그래머스 Lv.1] 수박수박수박수박수박수? (Python) (0) | 2024.07.10 |
[프로그래머스 Lv.1] 음양 더하기 (Python) (0) | 2024.07.09 |
[프로그래머스 Lv.1] 나누어 떨어지는 숫자 배열 (Python) (0) | 2024.07.09 |
[프로그래머스 Lv.1] 서울에서 김서방 찾기 (Python) (0) | 2024.07.09 |