길이가 같은 문자열 배열 my_strings
와 이차원 정수 배열 parts
가 매개변수로 주어집니다. parts[i]
는 [s, e] 형태로, my_string[i]
의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings
의 원소의 parts
에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
my_strings
의 길이 = parts
의 길이 ≤ 100my_strings
의 원소의 길이 ≤ 100parts[i]
를 [s, e]라 할 때, 다음을 만족합니다.
my_strings[i]
의 길이my_strings | parts | result |
---|---|---|
["progressive", "hamburger", "hammer", "ahocorasick"] | [[0, 4], [1, 2], [3, 5], [7, 7]] | "programmers" |
입출력 예 #1
예제 1번의 입력을 보기 좋게 표로 나타내면 다음과 같습니다.
i | my_strings[i] | parts[i] | 부분 문자열 |
---|---|---|---|
0 | "progressive" | [0, 4] | "progr" |
1 | "hamburger" | [1, 2] | "am" |
2 | "hammer" | [3, 5] | "mer" |
3 | "ahocorasick" | [7, 7] | "s" |
각 부분 문자열을 순서대로 이어 붙인 문자열은 "programmers"입니다. 따라서 "programmers"를 return 합니다.
function solution(my_strings, parts) {
return parts.reduce((acc,cur,i)=> acc+my_strings[i].slice(cur[0],cur[1]+1),''); //slice() 뒤에 +1이 필수다.
}
idx
가 필요하면 reduce()
로 달려가자. 하지만map((element,index,array)=>)
도 가능했다...
다른풀이
function solution(my_strings, parts) {
return parts.map(([s, e], i) => {
return my_strings[i].slice(s, e + 1)
}).join('')
}
const solution=(s,p)=>s.map((v,i)=>v.slice(p[i][0],p[i][1]+1)).join('');
function solution(my_strings, parts) {
var answer = '';
parts.forEach(([a,b],i)=>{
answer+= my_strings[i].substring(a,b+1);
})
return answer;
}