본문 바로가기

Certificate/Cos Pro 1급 (Python)

[Cos Pro 1급] 기출문제 3회차, 팝업 스토어를 열 최적의 날짜

Hi, There!
안녕하세요, 바오밥입니다.


목차

  1. 문제
  2. 풀이

문제

문제 내용

모 매장에서는 팝업스토어를 열려고 합니다.

팝업스토어란 한정 기간 문을 여는 매장입니다.

팝업스토어는 k일 동안 연속해서 열 예정입니다. n일 동안의 추정 매출액이 주어질 때, 언제 팝업스토어를 열어야 가장 매출이 높을지 알아보려 합니다.

 

n일 간의 추정 매출액이 담긴 리스트 revenue와 팝업스토어를 열 날의 수 k가 매개변수로 주어질 때, 최대 매출액 합을 return 하도록 solution 함수를 작성했습니다.

그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다.

주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.

 

매개변수 설명

추정 매출액이 담긴 리스트 revenue와 팝업스토어를 열 날의 수 k가 solution 함수의 매개변수로 주어집니다.

  • revenue의 길이는 1 이상 200,000 이하입니다.
  • revenue의 원소는 10,000 이하의 자연수입니다.
  • k는 1 이상 100,000 이하이고, revenue의 길이보다 작거나 같습니다.

return 값 설명

최대 매출액 합을 return 해주세요.

 

예시

 

예시 설명

예시 #1 4일간 매출액 합이 최대가 되는 경우는 [7, 6, 5, 10]입니다. 따라서 최대 매출액은 28입니다.

예시 #2 1일간 매출액 합이 최대가 되는 경우는 [5]입니다. 따라서 최대 매출액은 5입니다.


풀이

풀이 코드 및 해설

def solution(revenue, k) : # revenue : n일 간의 추정 매출액, k : 팝업스토어를 여는 기간
	answer = 0
	rsum = sum(revenue[0:k]) # 매출액의 합계
	answer = rsum # 0 ~ k-1일의 매출액 합계를 초깃값으로 지정
	for i in range(len(revenue)) : # n일 기간을 순회
		rsum = sum(revenue[i:k+i]) # i ~ k일의 매출액 합계를 저장
		if answer < rsum : # 현재 순회하고 있는 매출액 합계가 더 크다면 
			answer = rsum # 새롭게 매출액을 저장
	return answer