본문 바로가기
코딩테스트/programming_JAVA

[Java] 프로그래머스_181913 : 문자열 여러 번 뒤집기

by prometedor 2023. 9. 7.

StringBuilder - reverse, replace 이용하기

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

class Solution {
    public String solution(String my_string, int[][] queries) {
        StringBuilder sb = new StringBuilder(my_string);
        
        for (int i = 0; i < queries.length; i++) {
            int start = queries[i][0];
            int end = queries[i][1];
            
            // 뒤집을 부분 문자열을 추출한 후 뒤집기
            StringBuilder rev = new StringBuilder(sb.substring(start, end + 1)).reverse();
            
            // 원본 문자열에서 뒤집힌 부분을 교체하기
            sb.replace(start, end + 1, rev.toString());
        }
        
        return sb.toString();
    }
}

 

 

String 클래스와 동일한 메서드

// String 클래스와 동일 메서드

charAt() - 특정 인덱스 위치의 문자 반환
indexOf() / lastIndexOf() - 문자열 검색해서 위치 반환
length() - 문자열 길이 반환
replace() - 검색된 문자열 교체
substring() - 특정 인덱스 범위 내 문자열을 복사해서 새로 생성된 인스턴스 반환
toString() - 문자열 출력

 

StringBuilder 에서만 쓰이는 메서드

// StringBuilder 에서만 쓰이는 메서드

append() - 문자열 추가
reverse() - 문자열 뒤집기

 

 

해당 문제에서 사용한 메서드

StringBuilder sb = new StringBuilder("문자열").reverse()

ㄴ 문자열 뒤집기 가능

 

sb.replace(시작 인덱스, 종료 인덱스 + 1, "변경할 문자열");

ㄴ replace()

 

 

StringBuilder 객체를 문자열로 변경하려면 .toString() 이용하기