코딩테스트/JAVA

[JAVA/프로그래머스] 글자 지우기

할루솔이 2023. 7. 1. 17:56
반응형

문제 설명
문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항
1 ≤ indices의 길이 < my_string의 길이 ≤ 100
my_string은 영소문자로만 이루어져 있습니다
0 ≤ indices의 원소 < my_string의 길이
indices의 원소는 모두 서로 다릅니다.


입출력 예

입출력 예

 

입출력 예 설명
입출력 예 #1

예제 1번의 my_string의 인덱스가 잘 보이도록 표를 만들면 다음과 같습니다.

입출력 예2


indices에 있는 인덱스의 글자들을 지우고 이어붙이면 "programmers"가 되므로 이를 return 합니다.


import java.util.*;
class Solution {
    public String solution(String my_string, int[] indices) {
        String answer = "";
        StringBuilder sb = new StringBuilder(my_string);
        Arrays.sort(indices);
        for(int i = indices.length - 1; i >= 0; i--){
            sb.deleteCharAt(indices[i]);
        }
        return sb.toString();
    }
}

 

StringBuilder를 생성해 주고 indices[i]를 deleteCharAt()해주면 끝!

그리고 반복문 조건을 int i = indices.length - 1; i >= 0; i-- 이렇게 해준 이유는

int i=0; 이런 식으로 해줄 경우 인덱스가 삭제되면서

다음 조건을 수행할 때 오류가 생기기 때문이다!

반응형