프로그래머스 부분 문자열 이어 붙여 문자열 만들기 자바

디하·2023년 12월 4일
0

프로그래머스

목록 보기
4/10
post-thumbnail

문제 설명

길이가 같은 문자열 배열 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;
    }
}
  1. 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 더 크게 해주면 원하는 값을 추출할 수 있다

profile
🖥️ ⌨️🖱️🩵

0개의 댓글