문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 원소 ≤ 9
- numbers의 모든 원소는 서로 다릅니다.
입출력 예 #1
- 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다.
입출력 예 #2
- 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다.
Step1. 문제분석
내가 생각한 문제의 풀이는 어차피 어떤 수가 뽑아졌는지 그런게 아닌 수의 합만 찾으면 된다고 했고
수가 정해져 있으니 0~ 9까지의 숫자 중 포함된 숫자의 값을 sum값에 저장한 뒤
0~9까지의 수의 합은 45이기 때문에 45- (아까 배열에서 값을 얻은 sum값)을 하면
결과가 나올거라 생각했다.
Step2. 문제풀이 코드
public class Solution {
public int solution(int[] numbers) {
int sum = 0;
for (int i : numbers){
sum += i;
}
int answer = (45 - sum);
return answer;
}
}
Step3. 다른 사람의 풀이 코드
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
굳이 값을 추가하는 것이 아닌 처음부터 sum 값에 45라는 값을 주고
없는 숫자의 값을 제외한 수들을 빼면 자동으로 제외한 수의 합이 되는 것이였다.
조금만 더 생각을 했으면 이런 방향으로도 계산이 가능했을 것 같은데 아쉽다.
'Java > 알고리즘' 카테고리의 다른 글
[프로그래머스/알고리즘] 평균 구하기 (자바/Java) (0) | 2022.11.18 |
---|---|
[프로그래머스/알고리즘] 음양 더하기 (자바/Java) (0) | 2022.11.18 |
[프로그래머스/알고리즘] 문자열을 정수로 바꾸기 (자바/Java) (0) | 2022.11.18 |
[프로그래머스/알고리즘] 두 정수 사이의 합 (자바/Java) (0) | 2022.11.18 |
[프로그래머스/알고리즘] 가운데 글자 가져오기 (자바/Java) (0) | 2022.11.18 |
댓글