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

말하는 감자·2022년 6월 30일
0

Programmers Level 1

목록 보기
56/66
post-thumbnail

프로그래머스 Level 1

🔒 없는 숫자 더하기

📚 문제 설명

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


✅ 제한 사항

  • 1 ≤ numbers의 길이 ≤ 9

  • 0 ≤ numbers의 모든 원소 ≤ 9

  • numbers의 모든 원소는 서로 다릅니다.


📖 입출력 예

numbersresult
[1,2,3,4,6,7,8,0]14
[5,8,4,0,6,7,9]6

📃 입출력 예 설명

입출력 예 #1

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

입출력 예 #1

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

🗝️ 작성 코드

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        int[] answ = new int[10];
        
        for(int i=0; i<numbers.length; i++) {
            answ[numbers[i]] = 1;
        }

        for(int i=0; i<answ.length; i++) {
            if(answ[i] == 0) answer += i;
        }
        
        
        
        return answer;
    }
}

길이가 10인 정수형 배열 answ를 만들었다.
이제 감자는 answ에 0~9까지의 숫자 유무를 각 인덱스에 저장할 것이다.

반복문을 통해 numbers의 값들을 answ의 인덱스에 넣어주고 해당 answ의 요소 값은 1로 변경해준다.
그러면 answ에는 numbers에 있는 값은 해당 인덱스에 1이 들어갈 것이고 없는 값이면 0이 될 것이다.

다시 한번 반복문을 통해 answ의 각 요소들의 값을 확인한다.
만약 요소의 값이 0이라면 answ의 인덱스는 numbers에 없던 값이니 answer에 해당 인덱스를 더해준다.


🔓 다른 사람의 코드

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

처음부터 0~9까지를 모두 더한 값 45에서 numbers의 값들을 빼주는 방법이다.

...이런 기발한 사람들!!

profile
나는 말하는 감자다

0개의 댓글