울음참고 개발공부
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/181900

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 


 

 

import java.util.Arrays;

class Solution {
    public String solution(String my_string, int[] indices) {
        StringBuilder sb = new StringBuilder(my_string);

        Arrays.sort(indices);
        for (int i = indices.length - 1; i >= 0; i--) {
            int index = indices[i];
            if (index >= 0 && index < sb.length()) {
                sb.deleteCharAt(index);
            }
        }

        return sb.toString();
    }
}

 

 

 


 

 

deleteCharAt() 

 

  • StringBuilder 클래스에서 사용되는 메서드
  • 문자열 내에서 특정 인덱스에 해당하는 문자를 제거하는데 사요됨
  • 지정된 인덱스의 문자를 제거하고, 그 이후의 문자들을 왼쪽으로 이동시킴

 

 


 

처음에 for(int i = 0; i<indices.length; i++) 로  for문을 돌다보니

deleteCharAt() 로 각 해당하는 인덱스 값을 지우면서 인덱스 번호가 변경되어 오류가 났다.

 

( my_string의 길이가 18일 때, 0번째 인덱스를 지우면 길이가 17 로 변하고 마지막에 16번째 인덱스를 지우려면 길이가 그것 보다 짧을 경우 지울 수없는 것이다. )

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!