코딩테스트(Level 0~1)

[JAVA, Programmers] 없는 숫자 더하기(자바)

justdoIT0730 2022. 11. 21. 16:13
728x90
728x90

1. 문제 설명

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

 

2. 제한사항

1 ≤ numbers 길이 ≤ 9

 

3. 입출력

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

 

4. 입출력 설명

- 입출력 #1

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

- 입출력 #2

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

 

class Solution {
    public int solution(int[] numbers) {
        int [] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
		int cnt = 0;
		for(int i=0; i<numbers.length;i++) {
			for(int y=0; y<a.length; y++) {
				if(numbers[i]==a[y]) {
					cnt +=a[y];
				}
			}
		}
        return 45-cnt;
    }
}

numbers 내 0~9 중 없는 수를 더해야하기 때문에

전체 합 45에서 0~9중 존재하는 수를 빼면

없는 수의 합이 나온다는 생각으로 접근했다.

 

더보기

하지만 풀면서도 너무 불필요한 부분이 많다고 느꼈다.

같은 접근이지만 훨씬 깔끔한 풀이로 다시 공부하였다.

 

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