https://www.acmicpc.net/problem/16139
16139번: 인간-컴퓨터 상호작용
첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째
www.acmicpc.net
import sys
input = sys.stdin.readline
S = input().strip()
q = int(input())
cnt = [[0] * 26]
for i, ch in enumerate(S):
cnt.append(cnt[len(cnt) - 1][:])
cnt[i + 1][ord(ch) - 97] += 1
for _ in range(q):
a, l, r = input().split()
ans = cnt[int(r) + 1][ord(a) - 97] - cnt[int(l)][ord(a) - 97]
print(ans)
문자열 길이에 따른 모든 알파벳 개수를 미리 구해놓고 질문에 답해야됨!
deepcopy보단 [:] 슬라이싱으로 리스트를 복사하는 편을 추천하더라!
그리고 S에서 strip() 안해주면 리스트 범위 초과해서 에러뜬다...
S = input()은 문자열 끝에 개행 문자('\n')를 포함한다고 함!
'백준' 카테고리의 다른 글
백준 10844. 쉬운 계단 수 (0) | 2024.03.08 |
---|---|
백준 4883. 삼각 그래프 (0) | 2024.03.07 |
백준 15903. 카드 합체 놀이 (0) | 2024.03.05 |
백준 1072. 게임 (0) | 2024.03.05 |
백준 27737. 버섯 농장 (0) | 2024.03.05 |