[백준] #2559 수열 python
2023. 1. 13. 06:00
https://www.acmicpc.net/problem/2559
📕 설명 📕
이 코드와 같이 모든 구간의 합을 list에 넣고 max함수를 사용하여 구하였더니 시간초과가 발생했다 !
N, M = map(int, input().split())
N_list = list(map(int, input().split()))
tmp = 0
tmp_val = []
for i in range(N - M + 1):
tmp_val.append(sum(N_list[i:i+M]))
print(max(tmp_val))
그래서 ! 다른 방법을 찾아보기로 했다.
먼저,
sum 함수로 리스트의 0번째 index부터 M번째 index까지의 합을 리스트에 저장한다.
그리고 다시 하나씩 for문을 돌며 맨 앞 값 이전 값을 빼주고, 새로 추가된 값을 더하는 방식으로 한다.
코드는 아래와 같다.
🧑🏻💻 나의 풀이 🧑🏻💻
N, M = map(int, input().split())
N_list = list(map(int, input().split()))
tmp = 0
tmp_val = [sum(N_list[:M])]
for i in range(1,N - M + 1):
tmp_val.append(tmp_val[i-1] - N_list[i-1] + N_list[i + M - 1])
print(max(tmp_val))
'Programming > Algorithm' 카테고리의 다른 글
[백준] #10886 0 = not cute / 1 = cute python (0) | 2023.01.15 |
---|---|
[백준] #10953 A + B - 6 python (0) | 2023.01.14 |
[백준] #11659 구간 합 구하기 4 (0) | 2023.01.12 |
[백준] #9663 N-Queen python (0) | 2023.01.11 |
[백준] #15652 N과 M (4) python (1) | 2023.01.10 |