[프로그래머스] Lv2 - 주식가격

김멉덥·2023년 8월 30일
0

알고리즘 공부

목록 보기
96/171
post-thumbnail
post-custom-banner

문제

프로그래머스 코딩테스트 고득점 Kit - 스택/큐


코드 구현

def solution(prices):
    answer = []
    
    # 초 단위로 기록된 주식가격 -> 가격이 떨어지지 않은 기간이 몇초인지
    
    for i in range(len(prices)):
        check = True
        for j in range(i+1, len(prices)):   # 현재 가격 기준으로 떨어진 가격이 있는지 확인하기
            if(prices[j] < prices[i]):      # 가격이 현재 가격보다 떨어졌다면
                ans_time = j - i            # 몇초인지 기간 구하기
                answer.append(ans_time)
                check = False
                break
        if(check):          # 현재 가격에서 떨어진게 그 뒤로 없다면,
            answer.append(len(prices)-1 - i)    # 한번도 떨어지지 않음! 몇초인지 기간 구하기
            
    
    return answer

풀이

  • 스택이나 큐로 풀었어야 싶었는데 2중 for문으로 그냥 해결되었다.
  • 현재 위치에서 남은 배열을 한번 더 뒤로 살펴보며 현재 가격보다 떨어진 가격이 존재하는지 찾고
    → 만약 떨어졌다면, 해당 초 기간을 인덱스의 차로 구해준다.
  • 만약 한번도 떨어지지 않았다면, 배열의 길이-1 로 맨 끝 인덱스 값에서 현재 인덱스 값을 빼주어 최종 초 기간을 구한다.
  • 이를 순서대로 answer 배열에 담아주면 된다.

profile
데굴데굴 뚝딱뚝딱 개발기록
post-custom-banner

0개의 댓글