[구간합] 파괴되지 않은 건물 - 2022 KAKAO BLIND RECRUITMENT
해결 방법 정확성 테스트라면 어렵지 않게 통과할 수 있을 것이지만, 2차원 누적합 알고리즘을 사용하지 않는다면 효율성 테스트에서 통과하기 힘들 것이다. 필자는 데미지 범위를 나타내는 벡터와 데미지를 나타내는 벡터 총 2개의 벡터를 만들어서 해결했다. 입출력 예 #1를 기반으로 해결 방법을 설명해보겠다. 데미지 범위 벡터(damage_pos) 먼저, 데미지 범위 벡터의 모든 요소는 0으로 초기화해둔다. (r1, c1)부터 (r2, c2)까지 degree 만큼의 공격을 받았다고 해보자. 이 때는 damage_pos의 (r1, c1), (r2+1, c2+1)에는 degree만큼 빼주고, (r1, c2+1), (r2+1, c1)에는 degree만큼 더해준다. 이를 그림으로 나타내면 다음과 같다. 회색 부분은 (..
2022. 10. 4.