길이가 같은 문자열 배열
my_strings
와 이차원 정수 배열parts
가 매개변수로 주어집니다.
parts[i]
는[s, e]
형태로,my_string[i]
의 인덱스s
부터 인덱스e
까지의 부분 문자열을 의미합니다.
각my_strings
의 원소의parts
에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을return
하는solution
함수를 작성해 주세요.
- 반환 문자를 가질 변수 하나를 선언하고,
my_strings
배열 요소 하나를parts
배열 요소에 있는 숫자로slice
한다.(1)
에서 생성된 배열을join('');
하여 문자열로 최종 반환한다.
function solution(my_strings, parts) {
const returnWord = my_strings.map((word, idx) =>
word.slice(parts[idx][0], parts[idx][1] + 1)
);
return returnWord.join("");
}
solution(
["progressive", "hamburger", "hammer", "ahocorasick"],
[
[0, 4], // progr
[1, 2], // am
[3, 5], // mer
[7, 7], // s
]
); // "programmers"
reduce()
메서드 사용function solution(my_strings, parts) {
return my_strings.reduce((result, str, i) => {
const [s, e] = parts[i];
return result + str.substring(s, e + 1);
}, '');
}
해당 풀이를 보고 구조분해 할당으로 조금 더 쉽게 parts 요소 number에 접근할 수 있음을 생각할 수 있었다.