반응형
URL : https://programmers.co.kr/learn/courses/30/lessons/42584
문제를 요약해보면 입력으로 초단위로 기록된 주식 가격이 담긴 배열 prices가 주어지는데, 각 주식이 가격이 떨어지지 않는 기간은 몇초인지가 담긴 리스트를 return 하라는 문제이다.
접근법
각 요소들에 대해서 검사를 한다.
- 검사중인 요소 prices의 마지막 요소인 경우에는 떨어지는지 오르는지 알 수 없기 때문에 무조건 값이 0이다.
- 마지막 요소가 아닌 경우에는 검사중인 요소 index + 1에 해당하는 요소부터 시작해 검사중인 요소보다 작은 경우가 발생되면 그 시점에서 break해주고 그 외 경우는 리스트 마지막까지 검사를 해준다.
검사가 끝나면 걸린 시간을 result리스트에 append하고 반환한다.
구현
from collections import deque
import re
from typing import MutableSequence
def solution(prices : MutableSequence) -> MutableSequence:
result = []
for i in range(len(prices)):
if i == len(prices) - 1:
result.append(0)
break
second = i + 1
not_down = 0
while second < len(prices):
if prices[i] > prices[second]:
not_down += 1
break
not_down += 1
second += 1
result.append(not_down)
return result
print(solution([1, 2, 3, 2, 3]))
반응형
'CS 지식 > Algorithm-Problem Solving 정리' 카테고리의 다른 글
[백준] 2164 카드 2 (0) | 2022.01.24 |
---|---|
[구름] 큐(Queue) (0) | 2022.01.24 |
[백준] 9012 번 괄호 (0) | 2022.01.18 |
[백준]10828 스택 (0) | 2022.01.18 |
[프로그래머스] 가장 큰 수 (0) | 2022.01.11 |