본문 바로가기
알고리즘/프로그래머스 풀이

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

by krapoi 2021. 11. 19.
반응형

이번에 풀 문제는 없는 숫자 더하기이다.

 

문제 설명

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

 

배열에 0 ~ 9까지 수가 있는데 없는 수를 더하란 것. == 0 ~ 9 모두 합친 값 = 45, 45 - 배열에 있는 수.

즉 반대로 생각하면 0 ~ 9까지의 수를 모두 합친다음 배열에 있는 수 를 빼면 된다.

 

제한사항

  • 1 ≤ numbers의 길이 ≤ 9
  • 0 ≤ numbers의 모든 수 ≤ 9
  • numbers의 모든 수는 서로 다릅니다.

 

코드를 보자

 

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

음 뭐, 설명할 것도 없는 것 같다.

 

이렇게 풀 수 있지만, 이번에는 함수를 하나 만들어서 풀어 보겠다.

import java.util.Arrays;

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

        for(int i = 0; i <=9; i++){
        boolean isinclude = contains(numbers,i);
            if(!isinclude){
                answer += i;
                System.out.println(answer);
            }
        }

        return answer;
    }
    public static boolean contains(final int[] arr, final int key) {
        return Arrays.stream(arr).anyMatch(i -> i == key);
    }

이건 stream을 이용해 값이 들어있는지 true, false를 반환하는 함수를 만들어 풀어보았다.

 

contains 함수를 보면 arr이 key와 같은 값을 가졌는지 알아본다(anyMatch)

이런 식으로도 풀 수 있다.

반응형