가끔 생각을 해요 ʕتʔ

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

문제

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

 

풀이

def solution(numbers):
    answer = []
    for i in range(10):
        if i not in numbers:
            answer.append(i)
    return sum(answer)

# for문으로 0부터 9까지의 숫자가 numbers에 포함되어있는지 확인
# 포함되어 있지 않다면 answer에 담기
# answer의 합 리턴

다른 사람의 풀이

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

 

🍒 TIL

 

  • '없는 숫자 더하기' 문제를 쉽게 풀고 다른 사람의 풀이를 봤는데 머리를 맞은 기분이었다..! ㅋㅋㅋㅋㅋㅋ 문제를 완전히 뒤집어서 생각한 뒤 다른 방식으로 더 간단히 풀어낸 답이 있었다. 나는 0부터 9까지의 모든 숫자를 순회하며 이 중에서 주어진 배열에 없는 숫자들을 찾은 뒤 그 합을 구했는데, 다른 방식으로 풀어낸 코드는 0부터 9까지 숫자들의 총합 45에서 주어진 배열의 숫자들을 뺌으로써, 주어진 배열에 없는 숫자들의 합을 바로 계산할 수 있는 풀이였다. 문제를 다른 관점에서 접근해보거나 새로운 방식으로 접근해보는 것도 좋은 방법 같다.

공유하기

facebook twitter kakaoTalk kakaostory naver band