https://school.programmers.co.kr/learn/courses/30/lessons/42584
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(prices):
answer = [0] * len(prices)
# 자기 자신보다 작은 수가 나오는 순간(위치)을 찾아야 함
# 해당 위치의 인덱스 - 자기 자신의 인덱스 = 가격이 떨어지지 않은 기간 (초)
# 다만, 자기 자신보다 작은 수가 나오는 순간이 없었다면 끝까지 가격이 떨어지지 않은 것이므로 최대 길이 계산
# 자기 자신 (고정 인덱스) = i, 계속 움직이는 인덱스 = j
for i in range(len(prices)):
flag = False
for j in range(i+1, len(prices)):
if prices[i] > prices[j]: # 자기 자신보다 작은 수가 나왔을 때
answer[i] = j - i # 가격이 떨어지지 않은 기간 계산
flag = True
break
if not flag: # 자기 자신보다 작은 수가 끝까지 안나왔을 때
answer[i] = len(prices) - (i+1) # 최대 길이
return answer
'Coding Test Practice > Python' 카테고리의 다른 글
[LeetCode - Easy] 1025. Divisor Game (0) | 2023.05.01 |
---|---|
[프로그래머스 코딩테스트 연습 - 스택/큐 Lv. 2] 프린터 (0) | 2023.04.05 |
[프로그래머스 코딩테스트 연습 - 스택/큐 Lv. 2] 올바른 괄호 (0) | 2023.04.05 |
[프로그래머스 코딩테스트 연습 - 스택/큐 Lv. 2] 기능 개발 (0) | 2023.04.05 |
[프로그래머스 코딩테스트 연습 - 해시 Lv. 2] 전화번호 목록 (0) | 2023.04.05 |