Solution 1) 내 풀이

import java.util.*;

class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        List<Integer> list = new ArrayList<>();

        for (int i = 0; i < intStrs.length; i++) {
            if (Integer.parseInt(intStrs[i].substring(s, s + l)) > k) {
                list.add(Integer.parseInt(intStrs[i].substring(s, s + l)));
            }
        }
        
        int[] answer = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        return answer;
    }
}
List를 반복문을 통해 배열화 시킴

int[] answer = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }

 

 

Solution 2) 배열화에 stream 사용

import java.util.*;

class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        List<Integer> list = new ArrayList<>();

        for (int i = 0; i < intStrs.length; i++) {
            if (Integer.parseInt(intStrs[i].substring(s, s + l)) > k) {
                list.add(Integer.parseInt(intStrs[i].substring(s, s + l)));
            }
        }
        
        return list.stream().mapToInt(Integer::intValue).toArray();
    }
}
스트림은 아직 익숙치 않아 사용이 잘 안된다.

list.stream().mapToInt(Integer::intValue).toArray();
list의 스트림 생성 > mapToInt(Integer:::intValue) 로 Integer를 int로 매핑 > toArray()로 int 배열로 변환

 

+ Recent posts