📃 coding test/◽ 백준
(백준/c++) 16139 - 인간-컴퓨터 상호작용
핑크코냥
2022. 6. 27. 15:27
728x90
16139번: 인간-컴퓨터 상호작용 (acmicpc.net)
16139번: 인간-컴퓨터 상호작용
첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째
www.acmicpc.net
* 이 전의 누적합으로 사용했던 배열 SumArr[MAX]를 알바벳 개수 만큼 증가 시킴. -> SumArr[26][MAX]
#include<iostream>
#include<stdlib.h>
#include<string>
#include<memory.h>
using namespace std;
#define MAX 200'001
int SumArr[26][MAX];
// 구간 합.
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string str;
int cnt = 0;
memset(SumArr, 0, sizeof(SumArr));
cin >> str;
for(char& chr: str)
{
SumArr[chr-'a'][cnt]++;
for(int idx = 0; idx < 26; ++idx)
{
SumArr[idx][cnt] +=SumArr[idx][cnt-1];
}
cnt++;
}
int que;
cin >> que;
for(int idx = 0; idx < que; ++idx)
{
char c;
int aBegin, aEnd ;
cin >> c >> aBegin >> aEnd;
cout << SumArr[c - 'a'][aEnd] - SumArr[c - 'a'][aBegin-1] << "\n";
}
return 0;
}
728x90