백준/Python

[백준] 2559 수열 (python 파이썬)

노랑꼬리 2022. 12. 7. 15:57

문제링크 : https://www.acmicpc.net/problem/2559

 

2559번: 수열

첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기

www.acmicpc.net

 

작성코드

 

 

 

해설

 

이 문제는 구간합을 활용하여 푸는 문제이다.

단순히 리스트를 탐색하여 i + K 식으로 전체를 돌며 계산할 경우 시간초과가 나온다.

 

구간 합에 관한 내용은 https://yellowtail2357.tistory.com/28

 

[백준] 11659 구간 합 구하기 (python 파이썬)

문제링크 : https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자

yellowtail2357.tistory.com

여기서 기본적인 사용을 익힐 수 있다.

 

11659 구간합과 다른 점은 연속 날짜 길이 수의 합을 따로 리스트에 저장해주고 이 리스트의 최대값을 구해주어야하는 것이다.

구간의 경우 시작점 ~ 시작점+길이 까지가 되므로 이를 주의해서 for문을 작성해주어야한다.

 

해당 내용을 코드로 작성하면 

 

 

이와 같이 구간을 설정할 수 있다.

구간합 리스트인 ksum에서 최대치 계산 max()를 해주면 정답이 된다.