Algorithm/프로그래머스
프로그래머스 - 없는 숫자 더하기 (Java, 자바)
h7ung
2023. 8. 24. 19:10
728x90
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers
가 매개변수로 주어집니다. numbers
에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
numbers
의 길이 ≤ 9- 0 ≤
numbers
의 모든 원소 ≤ 9 numbers
의 모든 원소는 서로 다릅니다.
- 0 ≤
입출력 예
numbers | result |
---|---|
[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 해야 합니다.
입출력 예 #2
- 1, 2, 3이
numbers
에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
문제 풀이 방법
사실 이 문제는 이미 9개월전에 풀었던 문제였다.
면접시 라이브 코딩할때 해당 문제를 긴장해서 잘 풀이하지 못하여 반성하는 마음으로 다시 풀고 다시 정리하게 되었다.
- 배열을 정렬한다.
- 0 ~ 9 까지 비교할 기준이 되는 변수 배열 index 를 하나 만든다.
- 0부터 9까지 숫자를 비교하면서 index 보다 배열의 길이가 작아지는 순간 없는 숫자가 있으므로 없는 숫자를 해당하는 i 를 더한다.
- 배열의 값과 i의 값이 다를 경우도 배열에 해당 값이 없으므로 더한다.
- 배열의 값과 i 의 값이 같을 경우 index 만 증가한다.
전체 코드
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
Arrays.sort(numbers);
int index = 0;
for (int i = 0; i < 10; i++) {
if(index>=numbers.length){
answer+=i;
}
else if(index < numbers.length && numbers[index] !=i){
answer+=i;
}
else{
index++;
}
}
return answer;
}
}
728x90