def solution(prices):
n = len (prices)
answer = [0 for _ in range(n)]
st = []
# 인덱스 [0,1,2,3,4] 리스트는 항상 0부터 시작이 된다.
# prices [1,2,3,2,3]
# st [0,1,3,4]
# top = 0
# answer [0,3,1,1,0]
for i in range(n): # i부터 변수 n까지의 for문
while st and prices[st[-1]] > prices[i]: # st의 값과 price배열 안의 {[st[-1]](배열의 전체 개수)}, 즉 price 배열의 가장 마지막 인덱스(가격)가 현재 진행되는(제일 마지막) 프라이스보다 높을때! ---> 가격이 떨어졌단 결과!
top = st.pop() # pop 함수로 제외를 해줌.
answer[top] = i - top # answer에 해당 시간에, 해당 인덱스에 떨어지지 않은 시간 -> 이게 조금 어렵습니다...
st.append(i) # st에 인덱스를 추가.
while st: # st를 반복문으로 돌리면서
top = st.pop() # pop함수로 제외.
answer[top] = n - top - 1
return answer
# 0번째 top = 4 ---> 5 - 4 - 1 = 0
# 1번째 top = 3 ---> 5 - 3 - 1 = 1
# 2번째 조건이 안맞음 ---> 1
# 3번째 top = 1 ---> 5 - 1 - 1 = 3
# 4번째 top = 0 ---> 5 - 0 - 1 = 4
필자는 소프트웨어 공학을 3년동안 다녀왔지만, 학교에서만 따라하다가 현재 큰일날 지경에 다달았다.
동기들은 중견기업 회사들어가서 사회생활을 시작했는데 나는 국비지원에 지원하여 조금 더 공부가 필요하다.
그래도 엔코아라는 좋은 it회사 산하의 교육기관이라서 더 열심히하고 싶다.
사실 깃허브로 블로그를 시작하려했으나. 내가 또 영어에 약해요~ 결국 한달만에 포기하고 티스토리로 돌아왔다.
앞으로의 나의 블로그는 지금부터 시작이다ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ~~~~~~~~~~~~~~~~~~
'엔코아 알고리즘 스터디' 카테고리의 다른 글
프로그래머스 - 기능개발 코드 분석 및 풀이 (Python) (0) | 2021.05.20 |
---|