본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #2167: 2차원 배열의 합

www.acmicpc.net/problem/2167

 

2167번: 2차원 배열의 합

첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는

www.acmicpc.net

 

[오답] → 시간초과

 

우선 배열의 크기가 최대 300*300이므로 최대 90000개의 index를 가진다.

이 때 총 K번의 반복문을 실행해야 하는데, K의 범위는 1 ≤ K ≤ 10,000 이므로 최대 9억번의 연산을 해야한다.

그러므로 Python3는 시간초과가 발생한다. (Pypy3는 통과한다고 한다.)

 

시간초과가 되지 않으려면 dp를 이용하는 방법이 있다.

dp는 아직 배우지 않아서 나중에 다시 시도해보기로 하였다.

 


[참고]

https://blog.naver.com/parkjh9876/221867004374

 

2167 : 2차원 배열의 합

위는 첫번째 방법입니다.단순히 배열에 있는 값을 주어진 x1, y1, x2, y2를 통해 total을 구해주면 되는 문...

blog.naver.com