Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 부분 문자열 이어 붙여 문자열 만들기 (Java/자바) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 부분 문자열 이어 붙여 문자열 만들기 (Java/자바)

luke-king 2025. 12. 1. 12:42

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181911

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


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].substring(parts[i][0],parts[i][1]+1));
        }
        
        String answer = sb.toString();
        
        return answer;
    }
}

이번 문제는 프로그래머스 "부분 문자열 이어 붙여 문자열 만들기" 문제다.

문제 접근은 크게 어려움 없어 바로 풀이해보겠다.

 

1. 각 배열의 추출 값들을 하나의 문자열로 만들어 주기 위해 StringBuilder를 생성해준다.

 

2. 각 인덱스 값들의 문자열을 뽑아 parts[][]에 맞게 값을 추출하기 위해 for문을 사용해 준다.

 

3. my_strings[i] 값을 추출 한 뒤 parts[][]에 맞게 잘라 주기 위해 substring()를 사용한다. 이때 substring의 시작 값은 parts[i][0] 으로 시작하고 끝 값은 parts[i][1]+1로 해준다.

 

이유는 [0, 4], [1, 2], [3, 5], [7, 7] 이 주어 졌는데 처음으로 for문이 돌아가서 i = 0이라면

[0][0] 은  { [0, 4], [1, 2], [3, 5], [7, 7] }  들 중 [0][0]의 첫 번째 [0]은 [0,4]를 나타내고 [0][0]이 되었을 때 [0,4]에서의 0번째 인덱스 즉 0이 되므로 시작은 0부터 시작한다.

그러므로 [0][1]은 [0,4]에서 1번째 인덱스인 4를 나타 내기에 끝은 4 인 것이다. 다만 substring은 4까지 출력하지 않기 때문에 +1을 해줘야 인덱스 4까지 출력하기에 +1을 해준다.

 

4. 마지막으로 answer 값에 sb.toString()으로 해주면 끝이다.