문제
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
class Solution {
public int solution(int[] numbers) {
int answer = -1;
return answer;
}
}
제한사항
1 ≤ numbers의 길이 ≤ 9
0 ≤ numbers의 모든 원소 ≤ 9
numbers의 모든 원소는 서로 다릅니다.
입출력 예
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 해야 합니다.
문제 풀이
분석
0-9까지 범위가 고정되어있다.
배열을 정렬한 뒤에 뽑아낼 생각을 했는데 불필요한 로직이 들어갈 것 같다.
다 더한 후 빼는 방법을 생각했다.
내 풀이
class Solution {
public int solution(int[] numbers) {
int totalSum = 45;
int arraySum = 0;
// numbers 배열의 합을 계산
for (int number : numbers) {
arraySum += number;
}
return totalSum - arraySum;
}
}
다른 풀이
굳이 더한 후 빼는게 아니라 전체 값에서 빼는 방법이 더 간단하다.
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
Stream을 사용했다.
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
return 45-Arrays.stream(numbers).sum();
}
}
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int solution(int[] numbers) {
return IntStream.range(0, 10).filter(i -> Arrays.stream(numbers).noneMatch(num -> i == num)).sum();
}
}
Lv.1 / Java / 월간 코드 챌린지 시즌3
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
'공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv. 1] 음양 더하기 - JAVA (0) | 2024.08.24 |
---|---|
[프로그래머스 Lv. 1] 콜라츠 추측 - JAVA (0) | 2024.08.19 |
[프로그래머스 Lv. 1] 서울에서 김서방 찾기 - JAVA (0) | 2024.08.18 |
[프로그래머스 Lv. 1] 두 정수 사이의 합 - JAVA (0) | 2024.08.17 |
[프로그래머스 Lv. 2] 피보나치 수 - JAVA (0) | 2024.08.13 |