반응형
Q>
주어진 목록에서 최대 k-구간합을 구하는 알고리즘을 작성하시오.
A>
def deQuote(list):
for i in range(0, len(list)):
list[i] = int(list[i])
def findMaxSpan(list, k):
size = len(list) # 목록의 길이
max = list[0] # 임시 최대 구간합
for start in range(0, size - k + 1): # strat = 구간 출발 위치
sum = list[start] # 현재 구간 합 초기화
for i in range(1, k): # 현재 구간 내 원소들
sum += list[start +i] # 원소 합산
if sum > max: # 최대 구간합 갱신
max = sum
return max
list = input("정수들의 목록을 입력하세요 : ").split()
deQuote(list)
k = int(input("최대 구간합을 구할 구간 수(k) : "))
max = findMaxSpan(list, k)
print("최대 {}-구간합 : {}".format(k, max))
O>
정수들의 목록을 입력하세요 : 4 -1 3 14 -8 0 10
최대 구간합을 구할 구간 수(k) : 3
최대 3-구간합 : 16
Process finished with exit code 0
반응형
'Python_Intermediate > Algorithmus' 카테고리의 다른 글
[알고리즘]버블 정렬(Buble Sort) (0) | 2020.02.23 |
---|---|
Python - 피보나치 수열(for문 / 재귀함수) (0) | 2019.07.02 |
Palindrome Discrimination(회문 판별) (0) | 2019.05.02 |
Python - 사용자에게 입력 받아 * 산 모양 알고리즘 (0) | 2019.03.20 |
Python - 계단식 * 출력 알고리즘 (0) | 2019.03.20 |