Agorithm/백준 알고리즘

백준 알고리즘 2167번 2차원 배열의 합(python)

kimjinho1 2021. 2. 22. 00:40
728x90
반응형

단순 구현 문제이다. Python3로 제출했더니 시간 초과가 나와서 PyPy3로 제출했다.

이게 처음에 헷갈릴 수도 있는 게 i=1, j=2, x=2, y=3이라고 했을 때

(1,2), (1,3), (2,1), (2,2), (2,3)의 합을 구하는 게 아니라 (1, 2), (1, 3), (2,2), (2,3)의 합을 구해야 된다.

N, M = map(int, input().split())
li = [list(map(int, input().split())) for _ in range(N)]
for _ in range(int(input())):
    i, j, x, y = map(int, input().split())
    n, m = i, j
    res = 0
    while 1:
        if m > y:
            n += 1
            m = j
        res += li[n-1][m-1]
        if n == x and m == y:
            break
        m += 1
    print(res)
728x90
반응형