글자 이어 붙여 문자열 만들기

Programmers 코딩 기초 트레이닝


문제 설명

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

제한사항

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string의 원소는 영소문자로 이루어져 있습니다.
  • 1 ≤ index_list의 길이 ≤ 1,000
  • 0 ≤ index_list의 원소 < my_string의 길이

입출력 예

my_string index_list result
“cvsgiorszzzmrpaqpe” [16, 6, 5, 3, 12, 14, 11, 11, 17, 12, 7] “programmers”
“zpiaz” [1, 2, 0, 0, 3] “pizza”

입출력 예 설명

입출력 예 #1

예제 1번의 my_string에서 인덱스 3, 5, 6, 11, 12, 14, 16, 17에 해당하는 글자는 각각 g, o, r, m, r, a, p, e이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, r, o, g, r, a, m, m, e, r, s입니다. 따라서 “programmers”를 반환합니다.

입출력 예 #2

예제 2번의 my_string에서 인덱스 0, 1, 2, 3에 해당하는 글자는 각각 z, p, i, a이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, i, z, z, a입니다. 따라서 “pizza”를 반환합니다.


class Solution {
    public String solution(String my_string, int[] index_list) {

          //char배열을 만들고 크기는 my_string의 길이만큼 설정
	        char[] charList = new char[my_string.length()];
	        
	        //my_string을 charArray에 각각 분리해서 담는다
	        charList = my_string.toCharArray();
	        
	        StringBuilder stringBuilder = new StringBuilder();
	        
	        //index_list의 길이만큼 각 인덱스에 해당하는 숫자 뽑아서 stringBuilder에 charList에 해당하는 인덱스 찾아서 글씨를 새로 만들어 주는 작업.
	        for(int Idx : index_list) {
	        	stringBuilder.append(charList[Idx]);
	        }

          //만들어진 글자 리턴
	        return stringBuilder.toString();
    }
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

Leave a comment