function solution(intStrs, k, s, l) {
var ret = [];
for(let i = 0; i < intStrs.length ; i++){
const substr = intStrs[i].substring(s , s + l);
const num = Number(substr);
if(num > k){
ret.push(num);
}
}
return ret;
}
/*
문자열배열 intStrs 각 원소마다 s 번 인덱스에서
시작하는 길이 l 짜리 부분문자열을 '잘라내 정수로 변환' 합니다.
조건은 변환후 값 > k 을 담은 배열을 리턴해야해요
*/
- 주요 문법 :
String.prototype.substring()
const str = "Mozilla";
console.log(str.substring(1, 3));
// Expected output: "oz"
console.log(str.substring(2));
// Expected output: "zilla"
다른 풀이
function solution(intStrs, k, s, l) {
return intStrs.map((v) => +v.slice(s, s + l)).filter((v) => v > k);
}
.map 과 .slice 와 .filter 를 화살표 함수를 이용해서 풀었는데 굉장히 인상깊었다 .오히려 가독성도 좋고 효율적이라는 생각이 들었고 이런방법도 있구나 라고 생각이들어서 다음에 나도 시도해봐야겠다.
- intStrs 배열의 각 요소 v에 대해:
v.slice(s, s + l) → s부터 s+l 전까지 문자열을 자름
- → 문자열을 숫자로 변환함 (Number()와 같은 역할)
- .filter((v) => v > k)
위에서 만든 숫자 배열 중에서 k보다 큰 값만 남김
'Daily Logs > Algorithm Practice' 카테고리의 다른 글
[level 0] 문자열의 뒤의 n글자 (0) | 2025.06.05 |
---|---|
[level 0] 부분 문자열 이어 붙여 문자열 만들기 (0) | 2025.06.04 |
[level 0] 문자열 여러 번 뒤집기 (0) | 2025.06.02 |
[level 0] 9로 나눈 나머지 (0) | 2025.06.01 |
[level 0] 글자 이어 붙여 문자열 만들기 (1) | 2025.05.31 |