일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준 1806
- boj 2635
- boj 1697
- boj 2636
- boj 2178
- 백준 2206
- boj 1503
- boj 10800
- 백준 2636
- boj 1806
- 백준 2470
- boj 19238
- boj 2108
- 2636
- 2167
- 백준 2108
- boj 2667
- 10800
- 백준 2635
- 백준 10800
- boj 2470
- 백준 2178
- 백준 1697
- 백준 1503
- 백준 19238
- boj 2661
- boj 2206
- 백준 2661
- 백준 2167
- boj 2167
- Today
- Total
말랑말랑한 개발자 이야기
[백준 16507번] 어두운 건 무서워 본문
[백준 16507번] 어두운 건 무서워
문제
호근이는 겁이 많아 어두운 것을 싫어한다. 호근이에게 어떤 사진을 보여주려는데 사진의 밝기가 평균 이상이 되지 않으면 일절 보려 하지 않는다. 호근이가 이 사진에서 일부분이라도 볼 수 있는 부분을 찾아주자.
위 그림은 호근이에게 보여줄 5×6 크기의 사진이며, 각 픽셀은 밝기를 나타낸다. 호근이가 사진의 일부분이라도 볼 수 있는지 알아보기 위해서는 두 점 (r1, c1)과 (r2, c2)를 꼭짓점으로 하는 직사각형의 밝기 평균을 구해야 한다. 예를 들어, 위 그림에서는 (2, 2)와 (4, 5)를 꼭짓점으로 하는 직사각형을 말한다.
호근이에게 보여줄 R×C 크기의 사진이 주어질 때, 사진의 일부분에 해당하는 밝기 평균을 구하여라.
입력
첫 번째 줄에는 사진의 크기를 의미하는 정수 R, C (1 ≤ R, C ≤ 1,000)와 사진 일부분의 밝기 평균을 알아볼 개수를 의미하는 정수 Q (1 ≤ Q ≤ 10,000)가 주어진다.
다음 R개의 줄에 걸쳐 R×C 크기의 사진 정보가 주어지며, 사진의 각 픽셀에는 밝기를 의미하는 정수 K (1 ≤ K ≤ 1,000)가 주어진다.
다음 Q개의 각 줄에는 사진의 일부분을 나타내기 위한 두 꼭짓점을 의미하는 정수 r1, c1, r2, c2 (1 ≤ r1 ≤ r2 ≤ R, 1 ≤ c1 ≤ c2 ≤ C)가 주어진다.
출력
Q개의 각 줄에 주어진 사진에서 두 점 (r1, c1)과 (r2, c2)를 꼭짓점으로 하는 직사각형의 밝기 평균을 출력한다. 평균은 정수 나눗셈으로 몫만 취한다.
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int R, C, K; cin >> R >> C >> K;
int dd[1001][1001]={0,};
for(int i=1;i<=R;i++){
for(int j=1;j<=C;j++){
cin >> dd[i][j];
dd[i][j] += dd[i-1][j] + dd[i][j-1] - dd[i-1][j-1];
}
}
for(int i=0;i<K;i++){
int a, b, c, d;
cin >> a >> b >> c >> d;
int s = dd[c][d] - dd[a-1][d] - dd[c][b-1] + dd[a-1][b-1];
int z = (c-a+1) * (d-b+1);
cout << s / z << '\n';
}
return 0;
}
2차원 배열에서의 누적합 문제이다. dd[i][j]는 (0~i) * (0~j) 의 합으로 구성된다. 2167번 2차원 배열의 합 문제를 풀었다면 쉽게 풀 수 있는 문제인데 난이도 차이가 너무 많이 차이나는 것 같다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준 17951번] 흩날리는 시험지 속에서 내 평점이 느껴진거야 (0) | 2021.06.18 |
---|---|
[백준 16139번] 인간-컴퓨터 상호작용 (0) | 2021.06.18 |
[백준 21318번] 피아노 체조 (0) | 2021.06.18 |
[백준 20438번] 출석체크 (0) | 2021.06.18 |
[백준 14496번] 그대, 그머가 되어 (0) | 2021.06.18 |