프로그래머스 배열만들기 5 js

CodeBee_·2023년 12월 16일

프로그래머스

목록 보기
30/31


배열 만들기 5

https://school.programmers.co.kr/learn/courses/30/lessons/181912

문제 설명
문자열 배열 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

입출력 예

intStrsksl
["0123456789","9876543210","9999999999999"]5000055

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

idx잘라낸 문자열ret
0"56789"[56789]
1"43210"[56789]
2"99999"[56789, 99999]
  • 따라서 [56789, 99999]를 return 합니다.

🤍 나의 풀이

function solution(intStrs, k, s, l) {
    let answer = [];

    let str = intStrs.toString().split(',');
    for(let i = 0 ; i < str.length; i++) {
        let strIdx = str[i].substr(s, l);
        if(strIdx > k){
            answer.push(Number(strIdx));
        }
    }
    return answer;
}

// 매개변수 intStrs는 숫자이다.
// intStrs를 각각의 문자배열로 만들어주고
// s번 인덱스 부터 l까지의 부분 문자열을 잘라내 answer.push

🪐 다른사람의 풀이

function solution(intStrs, k, s, l) {
    return intStrs.map((v) => +v.slice(s, s + l)).filter((v) => v > k);
}
profile
엉금엉금 공부 블로그

0개의 댓글