코딩 테스트/프로그래머스

Lv2. 주식가격

  • -
728x90
반응형

문제 보기 :  코딩테스트 연습 - 주식가격 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

 


문제

  • 정답률 : 59%


작성 코드

from collections import deque

def solution(prices):
    answer = []
    prices = deque(prices)
    while True:
        # p = prices.pop(0)
        p = prices.popleft()
        if len(prices) == 0:
            answer.append(0)
            break
        else:
            bp = min(prices)
            if bp < p :
                answer.append(prices.index(bp)+1)
            else:
                answer.append(len(prices))
    return answer

처음에는 이렇게 while문과 deque로 풀었다. 그런데 정확도 6.7점에 효율성 0점으로 폭망 후 다른 방법을 찾아봤고, 

정답은 아래와 같이 나왔다.

역시 정석적인 방법이 짱이었다..

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

풀이

익숙함에 속아 이중 for문을 잊지 말자,,

언제나 근본이 제일 맞다.

쉬운 것 같아서 해설은 생략한다. 

320x100
728x90

'코딩 테스트 > 프로그래머스' 카테고리의 다른 글

Lv2. 뒤에 있는 큰 수 찾기  (0) 2024.09.01
Lv2. 땅따먹기  (0) 2024.08.31
Lv0. 주사위 게임 3  (3) 2024.08.28
Lv2. 방문 길이  (2) 2024.08.28
Lv2. 스킬트리  (0) 2024.08.26
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.