(백준/c++) 16139 - 인간-컴퓨터 상호작용📃 coding test/◽ 백준2022. 6. 27. 15:27
Table of Contents
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
'📃 coding test > ◽ 백준' 카테고리의 다른 글
(백준/ C++) 4673 - 셀프 넘버 (0) | 2022.09.02 |
---|---|
(백준/ C++) 11066 - 파일합치기 [너무 어려웠던 ..멘탈 탈탈] (0) | 2022.06.29 |
(백준/c++) 2559 - 수열 (0) | 2022.06.27 |
(백준/c++) 10986 - 나머지 합 (0) | 2022.06.24 |
(백준/c++) 11660 - 구간 합 구하기 5 (0) | 2022.06.23 |
@핑크코냥 :: 핑크코냥
안 하는 것 보다 낫겠지
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!