본문 바로가기
알고리즘/Programmers

[TIL] 2023.05.11 Programmers_부분 문자열 이어 붙여 문자열 만들기

by heereal 2023. 5. 11.

부분 문자열 이어 붙여 문자열 만들기

문제 설명

길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

 

 

입출력 예

my_strings parts result
["progressive", "hamburger", "hammer", "ahocorasick"] [[0, 4], [1, 2], [3, 5], [7, 7]] "programmers"

 

입출력 예 #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 my_strings.map((str, i) => str.slice(parts[i][0], parts[i][1] + 1)).join("");
}

map을 돌려서 각 문자열을 slice 메서드로 자른 후 join 메서드로 이어 붙인다.

 

 

다른 사람의 풀이

function solution(my_strings, parts) {
    return parts.map(([s, e], i) => {
        return my_strings[i].slice(s, e + 1)
    }).join('')
}

내 풀이와 기본적인 구조는 비슷하지만 my_strings가 아닌 parts에 map 메서드를 적용해서 구조 분해 할당으로 각 요소를 꺼내서 코드를 더욱 깔끔하게 작성한 점이 인상 깊었다. 

 

 

 

댓글