Post

[Programmers] #181911 - 부분 문자열 이어 붙여 문자열 만들기 [Java][C++][Python]

[Programmers] #181911 - 부분 문자열 이어 붙여 문자열 만들기 [Java][C++][Python]

문제 링크


1. 아이디어

my_strings[i]에서 parts[i]의 두 값 $s$, $e$가 가리키는 인덱스 $s$부터 $e$까지 닫힌 구간의 부분 문자열을 잘라내고, 이를 순서대로 이어 붙여 반환하면 된다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(N)$

($N$ = 결과 문자열의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
class Solution {
    public String solution(String[] my_strings, int[][] parts) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < my_strings.length; i++) {
            sb.append(my_strings[i], parts[i][0], parts[i][1] + 1);
        }

        return sb.toString();
    }
}
1
2
3
4
5
6
7
8
9
10
11
#include <bits/stdc++.h>
using namespace std;

string solution(vector<string> my_strings, vector<vector<int>> parts) {
    string s;
    for (int i = 0; i < my_strings.size(); i++) {
        s.append(my_strings[i], parts[i][0], parts[i][1] - parts[i][0] + 1);
    }

    return s;
}
1
2
def solution(my_strings, parts):
    return "".join(s[a : b + 1] for s, (a, b) in zip(my_strings, parts))

This post is licensed under CC BY 4.0 by the author.