반응형
https://programmers.co.kr/learn/courses/30/lessons/42584
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
문제설명
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요.
제한조건
- prices의 각 가격은 1 이상 10,000 이하인 자연수입니다.
- prices의 길이는 2 이상 100,000 이하입니다.
입출력 예
prices | return |
[1, 2, 3, 2, 3] | [4, 3, 1, 1, 0] |
입출력 예 설명
- 1초 시점의 \1은 끝까지 가격이 떨어지지 않았습니다.
- 2초 시점의 \2은 끝까지 가격이 떨어지지 않았습니다.
- 3초 시점의 \3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.
- 4초 시점의 \2은 1초간 가격이 떨어지지 않았습니다.
- 5초 시점의 \3은 0초간 가격이 떨어지지 않았습니다.
answer
def solution(prices):
answer = [] # 결과를 저장할 빈배열 생성
for i in range(0, len(prices)): # prices의 길이만큼 배열을 생성에 i에 담는다.
cnt = 0 # 카운트할 변수 초기화
for j in range(i + 1, len(prices)): # i + 1 번째부터 prices의 길이만큼 배열을 생성하고 j에 담는다.
if prices[i] <= prices[j]: # prices[j]가 prices[i]보다 크거나 같으면 가격이 떨어지지 않았으므로
cnt += 1 # cnt 1을 더해준다.
else: # 주식값이 떨어지는 초도 1초로 포함해야 하기 때문에 cnt+1해준다.
cnt += 1
break
answer.append(cnt) # prices[i]에 prices[j]비교를 모두 끝나면 answer에 cnt를 넣어준다.
return answer
예제에서 3초시점의 3원이 왜 1인지 헷갈려서 찾다보니 https://programmers.co.kr/questions/12172에서 헷갈리던 문제를 정확히 짚어주어서 풀 수 있었습니다 ㅠ
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] LEVEL2 - 올바른 괄호 (Python) (0) | 2020.06.05 |
---|---|
[프로그래머스] LEVEL1 - 체육복 (Python) (0) | 2020.06.03 |
[프로그래머스] LEVEL2 - 튜플 (Python) (0) | 2020.04.27 |
[프로그래머스] LEVEL3 - 숫자 게임 (Python) (0) | 2020.04.18 |
[프로그래머스] LEVEL2 - 전화번호 목록 (Python) (0) | 2020.04.16 |