
내가 생각했을때 문제에서 원하는부분
문자열 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 출력
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.