문제 설명
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- my_string은 영소문자로만 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
- queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
- 1 ≤ queries의 길이 ≤ 1,000
입출력 예

코드
class Solution {
public String solution(String my_string, int[][] queries) {
StringBuilder answer = new StringBuilder(my_string);
for(int[] q:queries){
StringBuilder sb = new StringBuilder(answer.substring(q[0],q[1]+1));
sb.reverse();
answer.replace(q[0],q[1]+1,sb.toString());
}
return answer.toString();
}
}
StringBuilder에서 reverse 사용했던걸 기억해서 생각보다 빨리 풀린 문제
처음에 for문으로 돌리면서 queries에서 i를 어떻게 처리하면 좋을까 생각했는데 그냥 queries에서 하나씩 받아오면 되는걸 복잡하게 생각하고 있었다.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/181913
'Study > Test(Java)' 카테고리의 다른 글
| [프로그래머스] 외계행성의 나이 Java (0) | 2023.06.17 |
|---|---|
| [프로그래머스] 배열 자르기 Java (0) | 2023.06.17 |
| [프로그래머스] 9로 나눈 나머지 Java (0) | 2023.06.17 |
| [프로그래머스] 글자 이어 붙여 문자열 만들기 Java (0) | 2023.06.17 |
| [프로그래머스] 간단한 논리 연산 Java (0) | 2023.06.17 |