import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int[] arr) {
int[] answer = new int[arr.length - 1];
if(arr.length == 1){
answer = new int[]{-1};
}else{
int index = arr[0];
for(int i : arr){
if(index > i){
index = i;
}
}
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
int finalIndex = list.indexOf(index);
long[] mini = Arrays.stream(IntStream.range(0, arr.length).toArray())
.filter(id -> id != finalIndex)
.mapToLong(id -> arr[id])
.toArray();
for(int i = 0; i < mini.length; i++){
answer[i] = Integer.parseInt(mini[i] + "");
}
}
return answer;
}
}
스트림 API를 이용해 배열을 고치게 만들었다.
백준
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Main {
static List<Integer>[] list ;;
private static boolean[] vir;
static int z = 0;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int pc = Integer.parseInt(br.readLine());
int cont = Integer.parseInt(br.readLine());
list = new ArrayList[pc + 1];
vir = new boolean[pc + 1];
for (int i = 0; i <= pc; i++) {
list[i] = new ArrayList<Integer>();
vir[i] = false;
}
for (int i = 0; i < cont; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
list[b].add(a);
list[a].add(b);
}
zombie(1);
System.out.println(z);
}
static void zombie(int pc) {
if (vir[pc]) {
return;
}
vir[pc] = true;
if(pc != 1){
z++;
}
for ( int t : list[pc]){
if (!vir[t]){
zombie(t);
}
}
}
}