estherseo
JINIWAY
estherseo
전체 방문자
오늘
어제
  • 분류 전체보기
    • 전공공부
    • CS
      • Network
      • Algorithm
      • 📖
      • python
      • django
    • Pentest
      • 📖
      • HTB
      • Machines
    • Web-hacking
      • 📖
      • Dreamhack
      • Portswigger
    • System-hacking
      • 📖
    • Mobile-hacking
    • Project
    • CVE
    • CTF
    • News & Conference
    • 자격증
    • 신기술
      • AI

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 소개

인기 글

최근 댓글

최근 글

태그

  • 셸쇼크
  • ASC 스터디
  • asc
  • python eval
  • pox2022
  • 세계신안보포럼
  • 화이트햇투게더1기
  • 네트워크관리사 실기 합격
  • 화이트햇투게더1기 결과공유회
  • 시스템해킹공부
  • jwt token last character
  • HTB valentine
  • integer overflow
  • n00bCTF
  • 스택카나리
  • 2022 pox
  • 시스템해킹 스터디
  • HTB shocker
  • 기사요약
  • 화이트햇투게더
  • ASC스터디
  • CVE-2022-22817
  • 중소기업 정보보호
  • 다크웹 모니터링
  • CTF공부
  • 2022 네트워크관리사
  • 패킷잡기
  • shocker
  • Pillow취약점
  • 다크웹 모니터링 서비스
hELLO · Designed By 정상우.
estherseo

JINIWAY

CS/Algorithm

[Algorithm] 백준 11660 : 구간합 구하기

2024. 6. 26. 21:23

 

* 구간합 사용 이유

Prefix Sum을 사용하면 배열의 특정 구간의 합을 O(1) 시간에 구할 수 있기 때문이다.

배열의 크기가 크고, 구간 합을 여러 번 계산해야 하는 경우에 유용하다.

=> 데이터 분석, 이미지 처리, 게임 개발, 금융 데이터 분석 등 대용량 데이터에서 특정 구간의 통계치를 빠르게 계산해야 하는 경우에 유용

 

"""
문제: 11660. 구간합 구하기

1. 아이디어
- M이 매우 크기 때문에 미리 합이 구해진 구간합 배열: prefix_arr
- D[x2][y2] - D[x1-1][y2] - D[x2][y1-1] + D[x1-1][y1-1]

2. 시간복잡도
O(N^2+M)

3. 자료구조
prefix_arr = int[N+1][N+1]

"""
import sys
input = sys.stdin.readline

N, M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
q_arr = [list(map(int, input().split())) for _ in range(M)]

prefix_arr = [[0]*(N+1) for _ in range(N+1)]

for i in range(1, N+1):
    for j in range(1, N+1):
        prefix_arr[i][j] = arr[i-1][j-1]+prefix_arr[i-1][j]+prefix_arr[i][j-1]-prefix_arr[i-1][j-1]

for x1,y1,x2,y2 in q_arr: #바로 구간합 배열에서 출력해줄 수 있다.
    result = prefix_arr[x2][y2]-prefix_arr[x1-1][y2]-prefix_arr[x2][y1-1]+prefix_arr[x1-1][y1-1]
    print(result)

'CS > Algorithm' 카테고리의 다른 글

[Algorithm][이진탐색] 백준 1920 : 수찾기  (0) 2024.06.29
[Algorithm][dfs, bfs] 백준 1260 : dfs와 bfs  (0) 2024.06.28
[Algorithm][dfs] 백준-2667  (0) 2024.06.26
[Algorithm][bfs] 백준-1926  (0) 2024.06.24
VSCode C++ 환경설정  (0) 2023.10.06
    'CS/Algorithm' 카테고리의 다른 글
    • [Algorithm][이진탐색] 백준 1920 : 수찾기
    • [Algorithm][dfs, bfs] 백준 1260 : dfs와 bfs
    • [Algorithm][dfs] 백준-2667
    • [Algorithm][bfs] 백준-1926
    estherseo
    estherseo
    안녕하세요😀

    티스토리툴바