728x90
반응형
실습 설명
규식이는 친구들 사이에서 투자의 귀재로 알려져 있습니다. 페이수북과 인수타그램에 자신의 성과를 과시하기 때문인데요. 사실 규식이가 그 정도의 실력자는 아닙니다. 성과가 좋을 때에만 SNS에 공유해서 그렇게 비춰질 뿐이죠.
계속해서 멋진 모습을 보여주기 위해, 특정 기간 중 수익이 가장 큰 구간을 찾아내는 함수 sublist_max()를 작성해 보려고 합니다.
시간 복잡도를 O(n)로 풀어보세요!
실습 결과
def sublist_max(profits):
max_profit_so_far = profits[0] # 반복문에서 현재까지의 부분 문제의 답
max_check = profits[0] # 가장 끝 요소를 포함하는 구간의 최대 합
# 반복문을 통하여 각 요소까지의 최대 수익을 저장한다
for i in range(1, len(profits)):
# 새로운 요소를 포함하는 구간의 최대합을 비교를 통해 정한다
max_check = max(max_check + profits[i], profits[i])
# 최대 구간 합을 비교를 통해 정한다
max_profit_so_far = max(max_profit_so_far, max_check)
return max_profit_so_far
# 테스트 코드
print(sublist_max([7, -3, 4, -8]))
print(sublist_max([-2, -3, 4, -1, -2, 1, 5, -3, -1]))
8
7
시간 복잡도

728x90
반응형
'알고리즘' 카테고리의 다른 글
[파이썬] 출근하는 방법 Ⅰ (0) | 2023.09.30 |
---|---|
[파이썬] 삼송전자 주식 분석 (0) | 2023.09.30 |
[파이썬] 투자 귀재 규식이 Ⅱ (1) | 2023.09.30 |
[파이썬] 중복되는 항목 찾기 Ⅰ (0) | 2023.09.30 |
[파이썬] 빠르게 산 오르기 (1) | 2023.09.30 |