1. N개의 줄에 M개의 정수로 배열이 주어진 것 해결
N, M = map(int, input().split())
li = []
for _ in range(N) :
p = list(map(int, input().split()))
li.append(p)
이렇게 설정해두면
이차원 배열이 잘 생성된다.
li2 = []
K = int(input())
for _ in range(K):
sum = 0
i,j,x,y = list(map(int, input().split()))
for t in range(i-1,x):
for r in range(j-1, y):
sum+=li[t][r]
li2.append(sum)
(i, j) 위치부터 (x, y) 위치까지(행, 열)에 저장된 수들의 합을 구해야하므로
list로 생각해보면
인덱스가 0인 것부터 시작하는 것을 고려하여
i-1 부터 x-1까지, j-1부터 y-1 까지 사이에 있는 수들을 더해야 한다.
반복문을 사용해서
for t in range(i-1,x):
for r in range(j-1, y):
sum+=li[t][r]
이렇게 더해주었고
N, M = map(int, input().split())
li=[]
li2=[]
for _ in range(N):
p = list(map(int,input().split()))
li.append(p)
# print(li)
K = int(input())
for _ in range(K):
sum = 0
i,j,x,y = list(map(int, input().split()))
for t in range(i-1,x):
for r in range(j-1, y):
sum+=li[t][r]
li2.append(sum)
for z in li2:
print(z)
li2에 저장시켜 한 줄에 하나씩 결과값이 나오도록 했다.
python으로 돌려봤을 때에는 시간초과가 떴는데
pypy로 돌렸을 때 성공했다.
for문을 많이 써서 시간 초과 떴던 것 같은데
for문을 줄이고 해결할 수 있는 방법을 생각해봐야겠다.
'알고리즘 공부' 카테고리의 다른 글
[백준 13241번] 최소공배수 python (0) | 2024.08.07 |
---|---|
[백준 11728번] 배열 합치기 python (0) | 2024.08.05 |
[백준 7785번] 회사에 있는 사람 python (0) | 2024.08.01 |
[백준 10815번] 숫자 카드 python (0) | 2024.08.01 |
[백준 2563번] 색종이 python (0) | 2024.08.01 |