20.39m
import sys
s = list(sys.stdin.readline().rstrip())
prefix = []
prefix.append({})
prefix.append({s[0]: 1})
for i in range(1, len(s)):
prefix.append(prefix[-1].copy())
if s[i] in prefix[i + 1]:
prefix[i + 1][s[i]] += 1
else:
prefix[i + 1][s[i]] = 1
for _ in range(int(sys.stdin.readline().rstrip())):
a, l, r = list(sys.stdin.readline().rstrip().split())
ll, rr = int(l), int(r)
left = prefix[ll][a] if a in prefix[ll] else 0
right = prefix[rr + 1][a] if a in prefix[rr + 1] else 0
print(right - left)
누적합 문제다!
2차원 리스트 누적합 풀다가... 사실 내일 보는 코테에는 그렇게 안나올 것 같아서 잠시 미뤄두고 1차원 누적합...
내일도 이정도로만 나오면 좋겠다.