728x90
반응형
[문제]
0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.
<제한사항>
- 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 해야 합니다.
[풀이]
import java.util.*;
import java.util.stream.*;
class Solution {
public int solution(int[] numbers) {
int answer = -1;
List <Integer> noex = new ArrayList <>();
List<Integer> strList = Arrays.stream(numbers).boxed().collect(Collectors.toList());
for(int i=0;i<=9;i++){
noex.add((strList.contains(i)==true)?0:i);
}
answer = noex.stream().mapToInt(Integer::intValue).sum();
return answer;
}
}
전체적으로 Arrays.stream을 이용해서 풀어봤다. 리스트가 총 두 개 선언되고 요소를 포함하는지 contains로 확인해서 없는 값을 새로운 동적할당 리스트에 넣어준다. 그리고 그 값을 모두 sum.
[다른 사람의 풀이]
class Solution {
public int solution(int[] numbers) {
int sum = 45;
for (int i : numbers) {
sum -= i;
}
return sum;
}
}
ㅎㅎ 생각을 조금만 바꾸면 이렇게 쉽게 풀 수 있다.
문제를 너무 정직하게 풀려고하지 말자...ㅋㅋㅋㅋ
반응형
'alorithm > programmers' 카테고리의 다른 글
[JAVA/프로그래머스] 직사각형 별찍기 (0) | 2023.05.05 |
---|---|
[JAVA/프로그래머스] 가운데 글자 가져오기 (0) | 2023.05.02 |
[JAVA/프로그래머스] 최댓값과 최솟값 (0) | 2023.04.29 |
[JAVA/프로그래머스] 콜라츠 추측 풀이 (0) | 2023.04.28 |
[JAVA/프로그래머스] 정수 제곱근 판별 (0) | 2023.04.28 |