[Python] 11660. 누적 합 구하기 5

2023. 6. 1. 13:52·study/백준(BOJ)
728x90

https://www.acmicpc.net/problem/11660

 

11660번: 구간 합 구하기 5

첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네

www.acmicpc.net

 

접근법

  • dp를 활용하여 이전 값들을 포함한 누적 합을 저장하는 방식 활용
def input_func():
    n, m = map(int, input().split())
    arr, point_arr = [], []
    for i in range(n):
        arr.append(list(map(int,input().split())))
    for i in range(m):
        point_arr.append(list(map(int, input().split())))
    return n,m,arr,point_arr


def fill_dp(n,arr):
    dp = [[0]*(n+1) for _ in range(n+1)]
    for i in range(1,n+1):
        for j in range(1,n+1):
            dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] + arr[i-1][j-1]
    return dp


def solution(n,m,arr,point_arr):
    dp = fill_dp(n,arr)
    for i in range(m):
        x1, y1, x2,y2 = point_arr[i]
        ans = dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1]
        print(ans)

def main():
    n,m,arr,point_arr = input_func()
    solution(n,m,arr,point_arr)


if __name__ == '__main__':
    main()


사용된 알고리즘

다이나믹 프로그래밍, 누적 합

728x90

'study > 백준(BOJ)' 카테고리의 다른 글

[Python] 11501. 주식  (0) 2023.06.02
[Python] 2012. 등수 매기기  (0) 2023.06.01
[Python] 1058. 친구  (0) 2023.05.18
[Python] 1679. 숫자놀이  (0) 2023.05.17
[Python] 2458. 키 순서  (1) 2023.05.17
'study/백준(BOJ)' 카테고리의 다른 글
  • [Python] 11501. 주식
  • [Python] 2012. 등수 매기기
  • [Python] 1058. 친구
  • [Python] 1679. 숫자놀이
bbooo
bbooo
  • bbooo
    bbooo
    bbooo
  • 전체
    오늘
    어제
    • 분류 전체보기 (142)
      • study (61)
        • 백준(BOJ) (34)
        • Programmers (15)
        • LeetCode (9)
      • AI (4)
        • Paper (0)
      • SSAC X IFFEL (4)
        • DeepML (1)
        • 밑바닥 부터 시작하는 딥러닝 (2)
      • 회고 (46)
      • Error (10)
      • Setting (15)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬 석유시추
    python 과제 진행하기
    백준 2470
    백트래킹
    두 포인터
    sort
    백준
    투포인터
    Til
    파이썬 과제 진행하기
    문자열을 원하는 길이로
    python 석유시추
    typeerror: sequence item 0: expected str instance int found
    set
    LeetCode
    sequence item 0: expected str instance int found
    99클럽
    vscode
    Counter
    풀이 실패
    코딩테스트 준비
    파이썬
    브루트포스
    개발자 취업
    docker
    항해99
    그리디 알고리즘
    programmers 과제 진행하기
    프로그래머스 석유시추
    programmers 석유시추
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
bbooo
[Python] 11660. 누적 합 구하기 5
상단으로

티스토리툴바