코딩 테스트/Level 1

월간 코드 챌린지 시즌3: 없는 숫자 더하기

컴닥 2021. 9. 14. 17:24
반응형

https://programmers.co.kr/learn/courses/30/lessons/86051

 

코딩테스트 연습 - 없는 숫자 더하기

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

programmers.co.kr

파이썬

 

def solution(numbers):
    return sum({i for i in range(10)} - set(numbers))

 

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

 

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

 

Java

문제에 겹치는 경우에 대한 언급이 없었습니다.
테스트를 돌려보니 겹치는 경우는 없었습니다. 

class Solution {
    public int solution(int[] numbers) {
        int total = 45;
        for (var num : numbers) total -= num;
        return total;
    }
}

겹치는 숫자가 있다면
해시'셋'(집합)을 이용해
겹친 원소를 제거해 준 뒤,
계산하면 됩니다. 

import java.util.HashSet;

class Solution {
    public int solution(int[] numbers) {
        var nums = new HashSet<Integer>();
        for (var num : numbers) nums.add(num);
        var total = 45;
        for (var num : nums) total -= num;
        return total;
    }
}
반응형