이번 문제는 50점까지밖에 구현하지 못했다.. 따라서 누적합 문제를 더 풀다가, 나중에 다시 풀어야겠다.
import java.io.*;
import java.util.StringTokenizer;
public class P16139 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력 받은 문자열을 문자 배열
String source = br.readLine().trim();
// 누적합을 저장할 배열
int[] prefixSum = new int[source.length()+1];
// 질문 횟수 > 즉, 반복 횟수
int Q = Integer.parseInt(br.readLine());
// 출력값을 저장할 변수
StringBuilder sb = new StringBuilder();
for(int i = 0; i < source.length(); i++)
prefixSum[i+1] = prefixSum[i] + source.charAt(i);
for(int i = 0; i < Q; i++) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int pattern = st.nextToken().charAt(0), cnt = 0;
int from = Integer.parseInt(st.nextToken()), to = Integer.parseInt(st.nextToken());
for(int j = from; j <= to; j++) {
if (prefixSum[j+1] - prefixSum[j] == pattern)
cnt++;
System.out.println(pattern);
}
sb.append(cnt + "\n");
}
System.out.println(sb);
}
}
'알고리즘 분류 > 누적합' 카테고리의 다른 글
2167 2차원 배열의 합 JAVA (0) | 2023.04.04 |
---|---|
11660 구간 합 구하기 5 JAVA (0) | 2023.04.02 |
11441 합 구하기 JAVA (0) | 2023.04.01 |
2559 수열 JAVA (0) | 2023.03.31 |
11659 구간 합 구하기 4 JAVA (0) | 2023.03.31 |