본문 바로가기

문제 풀이/Programmers

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

문제 출처 - Programmers

문제는 여기

 

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

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

programmers.co.kr


[풀이]

1. 배열에 값을 찾기 쉽게 오름차순 정렬을 해준다.

2. 0~9까지의 숫자를 찾아야 하므로 해당 범위로 반복을 시켜준다.

3. index를 사용해 배열의 값을 가리켜주고, i와 같다면 값을 증가 아니라면 answer에 더해준다.

4. 결과를 출력한다.

[접근]

1. 반복문을 돌려 배열에서 없는 숫자를 찾아 더하면 되겠다고 생각하였고 해당 방법으로 문제를 풀었다.

[코드]

import java.util.*;

class Solution {
    public int solution(int[] numbers) {
        int answer = 0; // 정답
        int index = 0; // 배열의 위치를 가리킬 인덱스
        
        // 오름차순으로 정렬
        Arrays.sort(numbers);
        
        // 0~9까지 포함된 숫자를 체크하기 위해
        // 0~9까지 반복
        for (int i = 0; i < 10; i++) {
            // 배열의 위치가 numbers의 길이보다 작고
            // 배열의 인덱스 위치 값이 i와 같다면
            if (index < numbers.length && numbers[index] == i) {
                index++; // 인덱스 값 증가
                continue;
            }
            // 아니라면 없다는 뜻이니까 answer에 값 더하기
            answer += i;
        }
        
        return answer;
    }
}