문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.
배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.
- 0 ≤ s < 100
- 1 ≤ l ≤ 8
- 10 ≤ k < 10l
- l - 1
- 1 ≤ intStrs의 길이 ≤ 10,000
- s + l ≤ intStrs의 원소의 길이 ≤ 120
intStrs |
k |
s |
l |
result |
["0123456789","9876543210","9999999999999"] |
50000 |
5 |
5 |
[56789, 99999] |
| import java.util.*; |
| |
| class Solution { |
| public int[] solution(String[] intStrs, int k, int s, int l) { |
| List<Integer> list = new ArrayList<>(); |
| |
| for(String str : intStrs) { |
| int i = Integer.parseInt(str.substring(s, s + l)); |
| if(i > k) list.add(i); |
| } |
| |
| int[] answer = new int[list.size()]; |
| |
| for(int i=0; i< answer.length; i++) { |
| answer[i] = list.get(i); |
| } |
| return answer; |
| } |
| } |
| import java.util.*; |
| |
| class Solution { |
| public int[] solution(String[] intStrs, int k, int s, int l) { |
| List<Integer> list = new ArrayList<>(); |
| |
| for(String str : intStrs) { |
| int i = Integer.parseInt(str.substring(s, s + l)); |
| if(i > k) list.add(i); |
| } |
| |
| return list.stream().mapToInt(i -> i).toArray(); |
| } |
| } |
| import java.util.*; |
| |
| class Solution { |
| public int[] solution(String[] intStrs, int k, int s, int l) { |
| return Arrays.stream(intStrs).mapToInt(i -> Integer.parseInt(i.substring(s, s + l))).filter(i -> i > k).toArray(); |
| } |
| } |