[JavaScript] Lv0 - 배열 만들기 5

Moon·2025년 1월 9일
0
post-thumbnail

배열 만들기 5

문제 설명

문자열 배열 intStrs와 정수 ksl가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다.

배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.


제한사항

  • 0 ≤ s < 100
  • 1 ≤ l ≤ 8
  • 10 ≤ k < 10 l - 1 l
  • 1 ≤ intStrs의 길이 ≤ 10,000
    • s + l ≤ intStrs의 원소의 길이 ≤ 120

입출력 예

intStrskslresult
["0123456789","9876543210","9999999999999"]5000055[56789, 99999]

입출력 예 설명

입출력 예 #1

  • idx에 따라 잘라낸 문자열과 그에 따른 ret의 변화를 표시하면 다음 표와 같습니다.
idx잘라낸 문자열ret
0"56789"[56789]
1"43210"[56789]
2"99999"[56789, 99999]
  • 따라서 [56789, 99999]를 return 합니다.

코드

function solution(intStrs, k, s, l) {
  return intStrs
    .map((str) => parseInt(str.slice(s, s + l))) // 각 문자열의 s번 인덱스에서 시작하는 l길이 부분 문자열을 추출 후 정수 변환
    .filter((num) => num > k); // 변환한 정수 중 k보다 큰 값만 필터링
}

코드 설명

1. 문자열 잘라내기

str.slice(s, s + l)
  • 목적:
    • 배열 intStrs의 각 원소에서 s번 인덱스부터 시작하는 l 길이의 부분 문자열을 추출합니다.
  • 작동 방식:
    • slice(start, end)는 문자열에서 start부터 end 이전까지의 부분 문자열을 반환합니다.
    • 예:
      • str = "0123456789", s = 5, l = 5
      • str.slice(5, 10)"56789".

2. 정수로 변환

parseInt(str.slice(s, s + l))
  • 목적:
    • 추출한 부분 문자열을 정수로 변환합니다.
  • 작동 방식:
    • parseInt는 문자열을 숫자로 변환합니다.
    • 예:
      • slice 결과가 "56789"인 경우 → 56789.

3. 조건에 맞는 값 필터링

.filter((num) => num > k)
  • 목적:
    • 추출한 정수 값 중에서 k보다 큰 값만 배열에 남깁니다.
  • 작동 방식:
    • filter는 배열을 순회하며 조건에 맞는 요소만 반환합니다.
    • 예:
      • 추출된 숫자: [56789, 43210, 99999], k = 50000.
      • 결과: [56789, 99999].

코드 실행 예

입력

intStrs = ["0123456789", "9876543210", "9999999999999"];
k = 50000;
s = 5;
l = 5;

단계별 동작

  1. 문자열 추출 및 정수 변환:
    • "0123456789".slice(5, 10)"56789"56789.
    • "9876543210".slice(5, 10)"43210"43210.
    • "9999999999999".slice(5, 10)"99999"99999.
    • 결과: [56789, 43210, 99999].
  2. 필터링:
    • [56789, 43210, 99999].filter((num) => num > 50000)[56789, 99999].

출력

[56789, 99999]
profile
MOON.DEVLOG

0개의 댓글