DecordRay

[프로그래머스] Level2 : 주식가격[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level2 : 주식가격[Python]

DecordRay 2023. 1. 23. 13:24
728x90
반응형

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42584

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이 :

사실 문제 자체는 스택/큐로 분류되어 있지만 스택, 큐가 아닌 기본 리스트를 사용해도 시간초과가 발생하지 않는 문제

1. 매 원소마다 다음 원소부터 마지막까지 반복문을 통해 값을 비교하여 prices[i]와 prices[j]를 비교

2. prices[i]와 prices[j]를 비교 시 prices[i]가 prices[j]보다 작거나 같은경우 temp+1 후 반복

3. prices[i]와 prices[j]를 비교 시 prices[i]가 prices[j]보다 클경우 temp+1 후 반복문 종료(Tip 참고)

 

* Tip - 처음 문제를 이해하는데 있어 어려움을 겪을 수 있는 부분

입출력 예시 3번째를 보면

  • 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다.

이 부분에서 힌트를 얻어야 한다. 이말은 즉슨 1초뒤에 가격이 떨어지든 안떨어지든 1초동안은 가격이 유지되는 것으로 본다는 점이다.

 

코드 :

def solution(prices):
    answer = []
    for i in range(len(prices)):
        temp = 0
        for j in range(i+1,len(prices)):
            if prices[i] <= prices[j]:
                temp += 1
            else:
                temp += 1
                break
        answer.append(temp)
    return answer

 

728x90
반응형
Comments