import java.util.*;
import java.util.ArrayList;
import java.util.stream.Collectors;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
ArrayList<Integer> index = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9,0));
ArrayList<Integer> intArr = (ArrayList<Integer>)Arrays.stream(numbers).boxed().collect(Collectors.toList());
index.removeAll(intArr);
System.out.println(index);
if (1<= numbers.length && numbers.length <=9){
for (int i = 0 ; i < index.size() ; i++){
answer += index.get(i);
}
}
return answer;
}
}
ArrayList<Integer> index = new ArrayList<Integer>(Arrays.asList(1,2,3,4,5,6,7,8,9,0));
- 제네릭스 -
List나 ArrayList를 선언할 때 객체에 사용할 데이터 타입을 <>안에 미리 정의해 놓는 것
IntegerType의 변수를 할당받을 List객체를 선언했다.
- Arrays.asList() -
Arrays.asList는 일반 배열을 ArrayList로 변환한다.
이번 문제에서는 ArrayList에서의 .reoveAll()함수를 사용하기 위해
배열을 ArrayList로 선언했다.
- ArrayList<Integer> intArr -
객체로 받는 numbers 배열을 index.removeAll(Collection<?>c) 함수의
인자값으로 사용하기 위하여 ArrayList로 변환후 할당 하기위한 객체를 선언했다.
-(ArrayList<Integer>)Arrays.stream(numbers).boxed().collect(Collectors.toList());-
- Arrays.stream() -
numbers를 ArrayList배열 할당함과 동시에 stream을 사용
-boxed()-
int , long , float 등의 primitive 자료형을 Integer 등의 wrapper type 데이터로 변환해줌
ArrayList에 Integer를 할당받기로 제네릭스에 선언했기 때문에 int를 변환
-collect(Collectors.toList())-
Stream을 List로 변환하는 함수
길게 정리했지만 한줄 요약하면 primitive 타입의 파라미터를 ArrayList에 할당하기 위하여 wrapper Type으로 형변환 후 할당
-ArrayList.removeAll(Collection)-
인자로 전달된 Collection과 ArrayList를 비교해 중복값을 삭제하는 함수
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 평균 구하기 (0) | 2022.03.15 |
---|---|
프로그래머스 Lv1 음양 더하기 (0) | 2022.03.15 |
프로그래머스 Lv1 문자열을 정수로 바꾸기 (0) | 2022.03.15 |
프로그래머스 Lv1 두 정수 사이의 합 (0) | 2022.03.15 |
프로그래머스 Lv1 가운데 글자 가져오기 (0) | 2022.03.15 |