개발(0)/CodingTest

[프로그래머스/Level1]없는 숫자 더하기 - 자바

까만밀가루 2024. 5. 8. 19:53

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


[문제 풀이]

: 숫자가 0 ~ 9 로 확정되었기 때문에, set으로 설정 한 뒤 0 ~ 9 사이 for문을 돌면서 set에 포함이 되어있지 않다면 그 값들을 더한다.

 

public class 없는_숫자_더하기 {
    public static void main(String[] args) {
        int[] numbers = {1,2,3,4,6,7,8,0};
        System.out.println(solution(numbers));
    }

    public static int solution(int[] numbers){
        int answer = 0;

        Set<Integer> set = new HashSet<>();
        for (int num : numbers) {
            set.add(num);
        }

        for(int i = 0 ; i < 10 ; i++){
            if(!set.contains(i)){
                answer += i;
            }
        }
        return answer;
    }
}

 

 


[(다른 사람의)더 간단한 풀이]

배열 → Arrays.sort() , 포함 → contatins 
이런식의 사고가 고정되어있다보니 위의 해설처럼 풀었는데 0 ~ 9 등 주어진 숫자에선 숫자 빼기를 활용하자..

total sum = 45 

class Solution {
    public int solution(int[] numbers) {
        int sum = 45;
        for (int i : numbers) {
            sum -= i;
        }
        return sum;
    }
}