[코딩테스트] JavaScript/[코테] 프로그래머스

[프로그래머스 / JS ] Lv.0 / 181912 : 배열 만들기 5

jini-dev 2025. 1. 18. 19:40
SMALL

배열 만들기 5(링크)

문제 설명

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

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

제한사항
  • 0 ≤ s < 100
  • 1 ≤ l ≤ 8
  • 10l - 1  k < 10l
  • 1 ≤ intStrs의 길이 ≤ 10,000
    • s + l  intStrs의 원소의 길이 ≤ 120
입출력 예
intStrs  k s l result
["0123456789","9876543210","9999999999999"]  50000 5 5  [56789, 99999]

입출력 예 #1

  • idx에 따라 잘라낸 문자열과 그에 따른 ret의 변화를 표시하면 다음 표와 같습니다.

따라서 [56789, 99999]를 return 합니다.

 

문제 풀이

function solution(intStrs, k, s, l) {
    return intStrs.map((i)=>Number(i.slice(s,s+l))).filter((i)=>i>k);
}

먼저 intStrs 배열의 원소들을 s번 인덱스에서 l 길이 짜리 부분 문자열을 잘라내고 정수로 변환하기 위해 map 메소드를 사용했다.

map 메소드로 배열 내 각각의 문자열을 돌며 slice 메소드로 s 길이부터 l 길이만큼 문자열을 잘라내기 위해

s 인덱스 부터 s+l 인덱스 까지 이기 때문에  i.slice(s,s+l)를 해주었다.

이렇게 잘라진 문자열을 Number 로 정수로 변환하고

filter 메소드를 사용해서 i 값이 k 값보다 큰것들만 반환되도록 했다.

LIST