https://programmers.co.kr/learn/courses/30/lessons/92344
[난이도] level3
[유형] 누적합
[풀이]
공식풀이 : https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/#%EB%AC%B8%EC%A0%9C-6-%ED%8C%8C%EA%B4%B4%EB%90%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EA%B1%B4%EB%AC%BC
#include <string>
#include <vector>
using namespace std;
int sum[1002][1002],N,M;
int solution(vector<vector<int>> board, vector<vector<int>> skill) {
int answer = 0;
N=board.size();
M=board[0].size();
for(auto s : skill){
int d=s[5];
if(s[0]==1) d*=-1;
sum[s[1]][s[2]]+=d;
sum[s[3]+1][s[2]]+=-d;
sum[s[1]][s[4]+1]+=-d;
sum[s[3]+1][s[4]+1]+=d;
}
for(int i=0;i<N;i++)
for(int j=1;j<M;j++) sum[i][j]+=sum[i][j-1];
for(int i=0;i<M;i++)
for(int j=1;j<N;j++) sum[j][i]+=sum[j-1][i];
for(int i=0;i<N;i++)
for(int j=0;j<M;j++) if(board[i][j]+sum[i][j]>0) answer++;
return answer;
}
https://github.com/has2/Problem-Solving/blob/master/programmers/level3/파괴되지_않은_건물.cpp
'Problem-Solving > Programmers' 카테고리의 다른 글
[프로그래머스][level2] 두 큐 합 같게 만들기 (C++) (0) | 2022.09.26 |
---|---|
[프로그래머스][level3] 사라지는 발판 (C++) (0) | 2022.05.29 |
[프로그래머스][level3] 양과 늑대 (C++) (0) | 2022.05.29 |
[프로그래머스][level2] 주차 요금 계산 (C++) (0) | 2022.05.29 |
[프로그래머스][level2] k진수에서 소수 개수 구하기 (C++) (0) | 2022.05.29 |