본문 바로가기

CodingTest/Programmers

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

/  제출 1  /

def solution(numbers):
    answer = -1
    nums = [i for i in range(10)]
    print(nums)
    for num in nums:
        if num not in numbers:
            if answer != -1:
                answer += num
            else:
                answer = num
        
    return answer
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
 
0 - 9 리스트를 만들어주고 각 값이 주어진 numbers에 없다면( 각 값을 numbers가 포함하고 있지 않다면)
answer에 더해줍니다. 대신 초기값이 -1이므로 분기문을 나눠 초기값은 대입하게 했습니다.
 

 

/  다른 분들 풀이  /

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

ㅋㅋㅋ 이렇게 하려다가 그래도 연습 겸 풀어서 작성했는데 이대로 제출하신 분들이 제일 많았습니다.

 

def solution(numbers):
    return sum([i for i in [1,2,3,4,5,6,7,8,9,0] if i not in numbers])

아 .. ! 이렇게 합쳐서 작성도 가능하구나. 음..

 

def solution(numbers):
    answer=0
    for i in range(1,10):
        if i not in numbers:
            answer += i
    return answer

굳이 따로 배열을 선언하지 않고도 인덱스를 값처럼 이용해서 바로 체크도 가능합니다. 그리고 answer을 굳이 고정시켜놓을 필요가 없었는데.. 이렇게 하는게 더 나을 뻔 했습니다.

 


 

정말 간만에 1단계 다운.. 거의 0.5단계 수준의 문제.. 반가웠다..ㅜ