study/문제 풀이
프로그래머스 - 주식가격
올스왑
2022. 3. 13. 20:25
코딩테스트 연습 - 주식가격
초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00
programmers.co.kr
스택/큐 문제이다. 모든 시점에서의 주식 가격이 담긴 배열이 파라미터로 넘어온다. 나는 모든 원소를 순회하면서 해당 원소의 다음 원소들을 순회하며 기준 원소보다 작은 원소가 나올 때까지 순회하고 작은 원소가 나오면 기준 원소와 해당 원소의 배열의 인덱스 차이를 정답 배열에 담았다.
그런데 다른 사람의 풀이를 보니, 정답 배열을 모든 원소를 0으로 초기화하여 선언한 후 순회를 하였다. 그리고 기준 원소보다 순회하는 원소가 크거나 같다면 해당 정답 배열의 기준 원소 인덱스에 1 씩 값을 더해주어 문제를 풀었다.
def solution(prices):
answer = []
# 모든 원소를 순회하면서 기준 원소로 잡고,기준 원소 뒤에 더 작은 원소가 나타나면, 길이 차이를 answer에 추가
flag = 0
for target in range(len(prices)-1):
for find in range(target + 1, len(prices)):
if prices[target] > prices[find]:
answer.append(find - target)
break
elif find == (len(prices) - 1):
answer.append(len(prices) - 1 - target)
# 마지막 원소
answer.append(0)
return answer