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
'코테연습 > 프로그래머스' 카테고리의 다른 글
⭐ 코딩테스트 입문 > 외계행성의 나이 #insert() (0) | 2023.09.25 |
---|---|
코딩 기초 트레이닝 > 배열 조각하기 Java #copyOfRange (0) | 2023.09.21 |
⭐ 코딩 기초 트레이닝 > 문자 개수 세기 Java #ASCII Code (0) | 2023.09.14 |
코딩 기초 트레이닝 > qr code - Java #charAt() (0) | 2023.09.13 |
코딩기초트레이닝 > 세로 읽기 Java (0) | 2023.09.07 |