문제 링크 : www.acmicpc.net/problem/5549
문제 풀이는 백준 15724번 주지수와 동일하다.
해당 문제를 풀어봤으면 이 문제도 쉽게 풀 수 있으므로, 구체적인 해설은 생략한다.
한 가지 눈여겨볼 점이라면, 저장해야할 변수가 총 3종류 이므로 3차원 배열을 선언했다는 것이다.
#include <iostream>
#include <algorithm>
using namespace std;
int m=0,n=0,k=0,a=0,b=0,c=0,d=0,ans=0,arr[1001][1001][3]={0,},dp[1001][1001][3]={0,};
char temp;
int main(void) {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> m >> n; cin >> k;
for(int i=1; i<=m; i++){
for(int j=1; j<=n; j++){
cin >> temp;
if(temp=='J') arr[i][j][0]++;
else if(temp=='O') arr[i][j][1]++;
else arr[i][j][2]++;
for(int x=0; x<3; x++){
dp[i][j][x] = arr[i][j][x]+dp[i-1][j][x]+dp[i][j-1][x]-dp[i-1][j-1][x];
}
}
}
while(k>0){
cin >> a >> b >> c >> d;
for(int i=0; i<3; i++){
ans = dp[c][d][i]-dp[a-1][d][i]-dp[c][b-1][i]+dp[a-1][b-1][i];
cout << ans << " ";
}
cout << "\n";
k--;
}
return 0;
}
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#1662번 압축 (C++) (0) | 2021.02.03 |
---|---|
#2293번 동전 1 (C++) (0) | 2021.01.23 |
#15724 주지수(C++) (0) | 2021.01.13 |
#1954 운동(C++) (0) | 2021.01.10 |
#4358번 생태학 (C++) (0) | 2021.01.02 |