🖥️ CS/Baekjoon Algorithms

#5549번 행성 탐사(C++)

한국의 메타몽 2021. 1. 13. 00:49

문제 링크 : www.acmicpc.net/problem/5549

 

5549번: 행성 탐사

상근이는 우주선을 타고 인간이 거주할 수 있는 행성을 찾고 있다. 마침내, 전 세계 최초로 인간이 거주할 수 있는 행성을 찾았다. 이 행성은 정글, 바다, 얼음이 뒤얽힌 행성이다. 상근이는 이

www.acmicpc.net

문제 풀이는 백준 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