500error
[Cos Pro 1급, Python] 1차 10번 : 주식으로 최대 수익을 내세요 본문
반응형
문제
지난 연속된 n일 동안의 주식 가격이 순서대로 들어있는 배열이 있습니다. 이때, 다음 규칙에 따라 주식을 사고 팔았을 때의 최대 수익을 구하려 합니다.
- n일 동안 주식을 단 한 번 살 수 있습니다.
- n일 동안 주식을 단 한 번 팔 수 있습니다.
- 주식을 산 날에 바로 팔 수는 없으며, 최소 하루가 지나야 팔 수 있습니다.
- 적어도 한 번은 주식을 사야하며, 한 번은 팔아야 합니다.
주식을 팔 때는 반드시 이전에 주식을 샀어야 하며, 최대 수익은 양수가 아닐 수도 있습니다.
연속된 n 일 동안의 주식 가격이 순서대로 들어있는 배열 prices와 배열의 길이 prices_len이 매개변수로 주어질 때, 주식을 규칙에 맞게 한 번만 사고팔았을 때 얻을 수 있는 최대 수익을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 코드가 올바르게 동작하지 않습니다. 주어진 코드에서 한 줄만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정해주세요.
코드
def solution(prices):
INF = 1000000001;
tmp = INF
answer = -INF
for price in prices:
if tmp != INF:
answer = max(answer, price - tmp)
tmp = min(tmp, price)
return answer
prices1 = [1, 2, 3];
ret1 = solution(prices1);
print("solution 함수의 반환 값은", ret1, "입니다.")
prices2 = [3, 1];
ret2 = solution(prices2);
print("solution 함수의 반환 값은", ret2, "입니다.")
반응형
'알고리즘 > 파이썬' 카테고리의 다른 글
[Cos Pro 1급, Python] 2차 2번 : 지하철 기다리기 (0) | 2024.02.26 |
---|---|
[Cos Pro 1급, Python] 2차 1번 : 도서 대여점 운영 (0) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 9번 : 계단 게임 (1) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 8번 : 누가 당선 되나요 (0) | 2024.02.26 |
[Cos Pro 1급, Python] 1차 7번 : 병합 and 정렬 (0) | 2024.02.26 |
Comments