728x90
접근 방법
2차원 배열에 입력을 저장하고 더하자.
n, m이 입력되면 [m][n]인 이중 배열을 선언하고
i, j, x, y가 입력되면 이중 반복분으로 [j][i] ~ [y][x]를 더하자.
1차시도 (시간초과)
2차시도 (pypy로 컴파일, 성공)
import sys
n, m = map(int, sys.stdin.readline().split())
lst = [[0]*n for _ in range(m)]
for i in range(n):
for idx, k in enumerate(sys.stdin.readline().split()):
lst[idx][i] = int(k)
num = int(sys.stdin.readline())
result = [0]*num
for idx in range(num):
i,j,x,y = map(int, sys.stdin.readline().split())
for row in range(j-1,y):
for col in range(i-1, x):
result[idx] += lst[row][col]
for i in result:
print(i)
새로 알게된 것
enumerate
for i, letter in enumerate(['A', 'B', 'C']):
print(i, letter)
:::
0 A
1 B
2 C
- 인덱스와 원소로 이루어진 튜플을 만들어준다.
- 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자풀기(unpacking)을 해줘야한다.
시작 인덱스 변경
- start 인자에 시작하고 싶은 숫자를 넘기자
for i, letter in enumerate(['A', 'B', 'C'], start=1):
print(i, letter)
참고 자료
728x90
'알고리즘 > 백준' 카테고리의 다른 글
설탕 배달 (파이썬) (0) | 2024.06.29 |
---|---|
14888 연산자 끼워넣기 (파이썬 시간초과) (0) | 2024.05.23 |
[구현] 11866 요세푸스 문제 0 (0) | 2024.04.12 |
[구현] 2563 색종이 (1) | 2024.04.12 |
[구현] 4673 셀프 넘버 (1) | 2024.04.11 |