728x90
언어_자바
프로그래머스_문자열 여러 번 뒤집기
class ReverseWord {
public String reverseWord(String my_string, int[][] queries) {
StringBuilder result = new StringBuilder(my_string);
for (int i = 0; i < queries.length; i++) {
int start = queries[i][0];
int end = queries[i][1];
StringBuilder str = new StringBuilder(result.substring(start, end + 1));
// subString(처음(포함), 끝(제외)) 이므로 end+1함으로써 end도 포함됨
str.reverse();
result.replace(start, end + 1, str.toString()); // start부터 end+1까지, str.toString()으로 대체
}
return result.toString(); // StringBuilder타입을 String 타입으로 반환
}
}
1. 입력 문자열 my_string을 수정 가능한 문자열로 다루기 위해 StringBuilder로 초기화한다.
2. for 루프를 통해 queries 배열의 각 행을 순회한다.
3. result.substring(start, end +1) 을 통해 주어진 범위의 단어를 추출한다. 여기서 중요한 점은 (처음(포함), 끝(제외)) 이므로 end+1 로 해둠으로써 end에 해당하는 값도 범위에 들어가게 된다.
4. 그렇게 추출한 단어를 str 에 저장한 후 reverse()를 통해 단어를 뒤집는다.
5. 뒤집은 단어를 원문(=result)에서 뒤집은 단어로 대체한다.
6. StringBuilder 타입을 String 타입으로 반환한다.
728x90
'Algorithm' 카테고리의 다른 글
✨ 알고리즘 관련 기초 자바 문법 (1) | 2024.01.01 |
---|---|
[프로그래머스] (181916) 주사위 게임 3 (0) | 2023.12.29 |
[프로그래머스] (181921) 배열 만들기 2 (1) | 2023.12.26 |
[이것이 코딩 테스트다] (Ch03 그리디) 큰 수의 법칙 (0) | 2023.12.25 |
[프로그래머스] (181925) 수 조작하기2 (0) | 2023.12.24 |