티스토리 뷰
문제
특정 기간 중 수익이 가장 큰 기간을 찾기
# 테스트
print(sublist_max([4, 3, 8, -2, -5, -3, -5, -3]))
print(sublist_max([2, 3, 1, -1, -2, 5, -1, -1]))
print(sublist_max([7, -3, 14, -8, -5, 6, 8, -5, -4, 10, -1, 8]))
내 풀이
- 모든 경우의 수를 리스트에 추가해서 최댓값을 구함
def sublist_max(profits):
profit_list = []
for i in range(len(profits)):
for j in range(i, len(profits)):
profit_list.append(sum(profits[i:j+1]))
return max(profit_list)
다른 풀이
- 최대수익을 첫 번째 값으로 설정하고
- total 변수를 만들어서 (시작 인덱스 바뀔 때마다 기간의 시작이 바뀌는 거니까, i for문 다음에 리셋)
- 동일 i 일때 (시작 인덱스가 동일할 때) total에 추가하면서 i부터 j까지의 합이 최대 수익이라면, max_profit 업데이트
def sublist_max(profits):
max_profit = profits[0] # 최대 수익
for i in range(len(profits)):
# 인덱스 i부터 j까지 수익의 합을 보관하는 변수
total = 0
for j in range(i, len(profits)):
# i 부터 j 까지 수익의 합을 계산
total += profits[j]
# i 부터 j 까지 수익의 합이 최대 수익이라면, max_profit 업데이트
max_profit = max(max_profit, total)
return max_profit
'Algorithm' 카테고리의 다른 글
[SWEA] 4012. [모의 SW 역량테스트] 요리사 (211012) (0) | 2021.10.12 |
---|---|
[1-2][DP] 거듭제곱 빠르게 구현하기 (0) | 2021.10.12 |
[DP] 피보나치 수열 메모이제이션 (0) | 2021.10.12 |
[Programmers][stack/queue] 기능개발 python (211012) (0) | 2021.10.12 |
파이썬 SW문제해결 응용_구현 - 03 탐욕 알고리즘 (0) | 2021.10.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 깃허브계정2개
- 브왈라
- ssafy6기
- 개발언어순위
- 싸피6기
- 개발자커리
- 코딩도서
- 맥과윈도우로깃허브
- 깃허브계정
- 상업용무료폰트
- 디즈니얼굴
- 클린코더
- 개발도서추천
- 싸피
- 한글무료폰트추천
- 무료폰트추천
- 개발언어추천
- ssafy합격후기
- ssafy결과
- 폰트추천
- SSAFY
- 개발자책추천
- 클린코드
- 개발자로드맵
- 개발자도서추천
- 임대차3법
- 폰트
- ssafy후기
- intj여자
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함