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

KIMYEONGJUN·2026년 5월 24일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다.
my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

내가 이 문제를 보고 생각해본 부분

public class Main30
해당 문제를 위한 메인 클래스 이름을 Main30으로 하였다.
public String solution(String my_string, int[] index_list)
문제에서 요구하는 메인 함수이며, 문자열과 인덱스 배열을 받아 문자열을 조합해 반환한다.
StringBuilder answer = new StringBuilder();
문자열을 효율적으로 이어붙이기 위해 StringBuilder를 사용하였다.
for (int index : index_list) { answer.append(my_string.charAt(index)); }
index_list에 있는 각각의 인덱스 위치의 문자를 꺼내 answer에 추가하는 반복문이다.
return answer.toString();
StringBuilder로 만든 결과를 String으로 변환하여 최종 반환한다.
public static void main(String[] args)
프로그램 실행 진입점으로, solution 메서드를 테스트하기 위해 두 가지 예시 입력을 만들고 결과를 출력하였다.
Main30 sol = new Main30();
인스턴스 메서드인 solution을 호출하기 위해 Main30 클래스의 객체를 생성하였다.
System.out.println()
결과 문자열을 콘솔에 출력하도록 하였다.

코드로 구현

class Solution {
    public String solution(String my_string, int[] index_list) {
        StringBuilder answer = new StringBuilder();
        for (int index : index_list) {
            answer.append(my_string.charAt(index));
        }
        return answer.toString();
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 글자 이어 붙여 문자열 만들기
public class Main30 {
    public String solution(String my_string, int[] index_list) {
        StringBuilder answer = new StringBuilder();
        for (int index : index_list) {
            answer.append(my_string.charAt(index));
        }
        return answer.toString();
    }

    public static void main(String[] args) {
        Main30 sol = new Main30();

        String my_string1 = "cvsgiorszzzmrpaqpe";
        int[] index_list1 = {16, 6, 5, 3, 12, 14, 11, 11, 17, 12, 7};
        System.out.println(sol.solution(my_string1, index_list1));  // programmers 출력

        String my_string2 = "zpiaz";
        int[] index_list2 = {1, 2, 0, 0, 3};
        System.out.println(sol.solution(my_string2, index_list2));  // pizza 출력
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글