
문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.
배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.
s < 100l ≤ 8k < 10 l - 1 lintStrs의 길이 ≤ 10,000s + l ≤ intStrs의 원소의 길이 ≤ 120| intStrs | k | s | l | result |
|---|---|---|---|---|
| ["0123456789","9876543210","9999999999999"] | 50000 | 5 | 5 | [56789, 99999] |
입출력 예 #1
ret의 변화를 표시하면 다음 표와 같습니다.| idx | 잘라낸 문자열 | ret |
|---|---|---|
| 0 | "56789" | [56789] |
| 1 | "43210" | [56789] |
| 2 | "99999" | [56789, 99999] |
function solution(intStrs, k, s, l) {
return intStrs
.map((str) => parseInt(str.slice(s, s + l))) // 각 문자열의 s번 인덱스에서 시작하는 l길이 부분 문자열을 추출 후 정수 변환
.filter((num) => num > k); // 변환한 정수 중 k보다 큰 값만 필터링
}
str.slice(s, s + l)
intStrs의 각 원소에서 s번 인덱스부터 시작하는 l 길이의 부분 문자열을 추출합니다.slice(start, end)는 문자열에서 start부터 end 이전까지의 부분 문자열을 반환합니다.str = "0123456789", s = 5, l = 5str.slice(5, 10) → "56789".parseInt(str.slice(s, s + l))
parseInt는 문자열을 숫자로 변환합니다.slice 결과가 "56789"인 경우 → 56789..filter((num) => num > k)
k보다 큰 값만 배열에 남깁니다.filter는 배열을 순회하며 조건에 맞는 요소만 반환합니다.[56789, 43210, 99999], k = 50000.[56789, 99999].intStrs = ["0123456789", "9876543210", "9999999999999"];
k = 50000;
s = 5;
l = 5;
"0123456789".slice(5, 10) → "56789" → 56789."9876543210".slice(5, 10) → "43210" → 43210."9999999999999".slice(5, 10) → "99999" → 99999.[56789, 43210, 99999].[56789, 43210, 99999].filter((num) => num > 50000) → [56789, 99999].[56789, 99999]