🧠 Algorithm/[JAVA] Programmers

[86051번] 없는 숫자 더하기

0_ch4n 2022. 5. 25. 14:08
반응형

월간 코드 챌린지 시즌3

 

✔️ 문제 설명

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

 

더보기

✔️ 입출력 예

 

입출력 예 #1

  • 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.

입출력 예 #2

  • 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.

 

✔️ 제한사항

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

 

✔️ 코드 구상

문제가 짧다보니 풀이를 생각해내기 편했다.

int[]로 주어진거에서 0~9 중 없는 숫자만 더해서 반환하면 되는데

for문으로 0~9까지 순회하면서 int[]에 포함되지 않는다면 answer에 더하기로 했다.

 

✔️ 코드

import java.util.*;

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

        Arrays.sort(numbers); //binarySearch를 사용하기 위한 정렬

        for(int i = 0; i <= 9; i++) {
        	//binarySearch는 포함이면 양수 포함하지 않으면 음수를 반환한다
            if(Arrays.binarySearch(numbers, i) < 0) {
                answer += i;
            }
        }

        return answer;
    }
}

 

📄 원문

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

반응형