슬기로운슬기
article thumbnail

<Qeustion>

<Answer>

class Solution {
    public String solution(String str, int[][] queries) {
        StringBuilder sb = new StringBuilder(str);
        
        for (int i = 0; i < queries.length; i++) {
            int cnt1 = queries[i][0];
            int cnt2 = queries[i][1];
            
            String rev = sb.substring(cnt1, cnt2 + 1);
            sb.replace(cnt1, cnt2 + 1, new StringBuilder(rev).reverse().toString());
        }  
        return sb.toString();
    }
}

처음에 뒤집기가 아니라 바꾸기인 줄 알고 시간 허비 ... 문제 좀 더 꼼꼼히 봐야겠다. 

 

<자세히...>

- StringBuilder 클래스를 사용 -> 문자열을 가변적으로 처리 가능, 문자열을 효율적으로 조작하고 변경해야 하는 상황에서 유용한 클래스

- 객체 sb를 생성하여 문자열 str을 담았음

StringBuilder sb = new StringBuilder(str);

- sb의 cnt1부터 cnt2까지의 부분 문자열을 rev에 저장 

String rev = sb.substring(cnt1, cnt2 + 1);

- new stringBuilder(rev).reverse() : 'rev'문자열을 역순으로 뒤집음. (reverse()메서드 사용)

- .toString() : 객체를 문자열로 변환함. 

- sb.replace() : 'sb'의 'cnt1'부터 'cnt2'까지의 부분 문자열을 rev를 역순으로 뒤집은 문자열로 대체함.

=> 'rev'를 역순으로 뒤집은 후 문자열로 변환한 값을 대체 문자열로 사용하여 replace() 메서드를 호출 

sb.replace(cnt1, cnt2 + 1, new StringBuilder(rev).reverse().toString());

 

 

 

 

 

 

현재 점수: 1190점 (시작일: 23.06.05)

 

반응형
profile

슬기로운슬기

@스를기

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