[ Programmers ] 글자 지우기 ( java ) 53 / 124
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📚 Table of Contents
문제
문제 설명
문자열 my_string
과 정수 배열 indices
가 주어질 때, my_string
에서 indices
의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤
indices
의 길이 <my_string
의 길이 ≤ 100 my_string
은 영소문자로만 이루어져 있습니다- 0 ≤
indices
의 원소 <my_string
의 길이 indices
의 원소는 모두 서로 다릅니다.
입출력 예
문제 풀이
코드 설명
코드 설명:
코드의 목적:
이 코드는 주어진 문자열(my_string)에서 특정 위치(indices 배열에 저장된 인덱스)의 문자를 제거하는 기능을 가진 알고리즘입니다.
코드의 주요 구조:
- 클래스 정의: Solution이라는 이름의 클래스를 정의합니다.
- 메서드 정의: solution이라는 이름의 메서드를 정의합니다. 이 메서드는 문자열(my_string)과 정수 배열(indices)을 인자로 받아 처리합니다.
코드의 주요 알고리즘:
- 문자열을 StringBuilder로 변환합니다.
- 제거할 문자의 위치를 저장한 배열(indices)을 오름차순으로 정렬합니다.
- 배열을 역순으로 순회하면서 해당 위치의 문자를 삭제합니다.
코드의 핵심:
- StringBuilder의 deleteCharAt 메서드를 이용하여 문자열의 특정 위치에 있는 문자를 제거합니다.
- 배열을 역순으로 순회하여 문자를 제거하므로 원래의 문자열의 구조가 유지됩니다.
풀이
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--) {
sb.deleteCharAt(indices[i]);
}
// 최종 결과 문자열을 반환
return sb.toString();
}
}
'Coding > Programers' 카테고리의 다른 글
[ Programmers ] 가까운 1 찾기 ( java ) 55 / 124 (0) | 2024.01.03 |
---|---|
[ Programmers ] 카운트 다운 ( java ) 54 / 124 (1) | 2024.01.03 |
[ Programmers ] 배열 만들기 1 ( java ) 52 / 124 (0) | 2024.01.02 |
[ Programmers ] 문자 개수 세기 ( java ) 51 / 124 (0) | 2024.01.02 |
[ Programmers ] qr code ( java ) 50 / 124 (1) | 2024.01.01 |