길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
class Solution {
public String solution(String[] my_strings, int[][] parts) {
String answer = "";
for(int i=0; i<my_strings.length; i++){
String str = my_strings[i];
answer += str.substring(parts[i][0],parts[i][1]+1); //1.
}
return answer;
}
}
parts[i][0]의 형태에서 [][]는 2차원 배열을 나타냄
이 코드에서 parts는 2차원 배열로 각 행은 하나의 범위를 나타냄
각 행 parts[i]는 두 개의 값으로 이루어져 있다. 첫 번째 값 parts[i][0]은 부분 문자열의 시작 인덱스를 나타내고, 두 번째 값 parts[i][1]은 부분 문자열의 끝 인덱스를 나타낸다.
parts[0][0] : 0번째 [0,4]의 0
parts[0][1] : 0번쨰 [0,4]의 4
str.substring(parts[0][0], parts[0][1]);
-> "prog"
-> substring(시작,끝): 시작인덱스 부터 끝인덱스를 자르는 함수인데 주의해야할 점은 끝 인덱스 값은 포함하지 않는다는 것!
-> 그래서 str.substring(parts[0][0], parts[0][1]); 이렇게 쓰게 되면 part[0]][1]이 포함되지 않는다
-> str.substring(parts[0][0], parts[0][1]+1); 1을 더 해줘서 원래 인덱스 값보다 1 더 크게 해주면 원하는 값을 추출할 수 있다