[코딩테스트] JavaScript/[코테] 프로그래머스
[프로그래머스 / JS ] Lv.0 / 181912 : 배열 만들기 5
jini-dev
2025. 1. 18. 19:40
SMALL
문제 설명
문자열 배열 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