class Solution {
public String solution(String my_string, int[][] queries) {
String answer = "";
for(int i=0;i<queries.length;i++) {
int a = queries[i][];
int b = queries[][i];
for(int j = a;j<b;j++) {
my_string.replace(b,a);
}
}
return answer;
}
}
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 a = queries[i][0];
int b = queries[i][1];
String sub = sb.substring(a, b +1);
String reversed = new StringBuilder(sub).reverse().toString();
sb.replace(a, b +1, reversed);
}
return sb.toString();
}
}
int a = queries[i][0];
int b = queries[i][1];로 시작점이랑 끝점 정하고
String sub = sb.substring(a, b + 1);로 a부터 b까지의 부분 문자열을 구한 뒤 뒤집으면 됨
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
int[] answer = {};
for(int i=0;i<intStrs.length;i++) {
int a = intStrs[i].substring(s, l);
if (a > k) {
answer[i] = a;
}
}
return answer;
}
}
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(String[] intStrs, int k, int s, int l) {
List<Integer> list = new ArrayList<>();
for(int i=0;i<intStrs.length;i++) {
String sub = intStrs[i].substring(s, s + l);
int val = Integer.parseInt(sub);
if (val > k) {
list.add(val);
}
}
return list.stream().mapToInt(i -> i).toArray();
}
}

이 방법도 깔끔해서 좋은듯
class Solution {
public String solution(String[] my_strings, int[][] parts) {
StringBuilder answer = new StringBuilder();
for(int i =o;i<parts.length;i++) {
int a = parts[i][0];
int b = parts[i][1];
answer.add(my_strings.substring(a, b));
}
return answer.toString();
}
}
class Solution {
public String solution(String[] my_strings, int[][] parts) {
StringBuilder answer = new StringBuilder();
for(int i =0;i<parts.length;i++) {
int a = parts[i][0];
int b = parts[i][1];
answer.append(my_strings[i].substring(a, b+1));
}
return answer.toString();
}
}
StringBuilder에 값을 추가할 때는 add가 아니라 append()를 써야함
substring(a, b)는 끝 인덱스 b를 포함하지 않고 그 직전까지만 잘라내. 그래서 e까지 온전히 포함하려면 b + 1을 적어야 함
이 방법도 깔끔하고 좋은듯