반응형
이번에 풀 문제는 없는 숫자 더하기이다.
문제 설명
0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
배열에 0 ~ 9까지 수가 있는데 없는 수를 더하란 것. == 0 ~ 9 모두 합친 값 = 45, 45 - 배열에 있는 수.
즉 반대로 생각하면 0 ~ 9까지의 수를 모두 합친다음 배열에 있는 수 를 빼면 된다.
제한사항
- 1 ≤ numbers의 길이 ≤ 9
- 0 ≤ numbers의 모든 수 ≤ 9
- numbers의 모든 수는 서로 다릅니다.
코드를 보자
public int solution(int[] numbers) {
int num = 45;
for (int i : numbers) {
num -= i;
}
return sum;
}
음 뭐, 설명할 것도 없는 것 같다.
이렇게 풀 수 있지만, 이번에는 함수를 하나 만들어서 풀어 보겠다.
import java.util.Arrays;
public int solution(int[] numbers) {
int answer = 0;
for(int i = 0; i <=9; i++){
boolean isinclude = contains(numbers,i);
if(!isinclude){
answer += i;
System.out.println(answer);
}
}
return answer;
}
public static boolean contains(final int[] arr, final int key) {
return Arrays.stream(arr).anyMatch(i -> i == key);
}
이건 stream을 이용해 값이 들어있는지 true, false를 반환하는 함수를 만들어 풀어보았다.
contains 함수를 보면 arr이 key와 같은 값을 가졌는지 알아본다(anyMatch)
이런 식으로도 풀 수 있다.
반응형
'알고리즘 > 프로그래머스 풀이' 카테고리의 다른 글
[JAVA] 프로그래머스 - 폰켓몬 (0) | 2022.10.06 |
---|---|
[JAVA] 프로그래머스 - 전화번호 목록 (0) | 2022.02.07 |
[JAVA] 프로그래머스 - 두 개 뽑아서 더하기 (0) | 2021.11.18 |
[JAVA] 프로그래머스 - 최대공약수와 최소공배수 (0) | 2021.11.13 |
[JAVA] 프로그래머스 - 시저 암호 (0) | 2021.11.12 |