강의로 돌아가기
Verylovenlp

(Python3) 효율성 0 코드, 더 좋은 코드가 생각 안나네요

다른 분들 파이썬 코드를 보면 조건문을 쓰셨거나, O(N2)인데도 통과되셨다는 분이 계셔서..
뭐가 문제인지 모르겠네요.

첫 번째 코드>
def solution(prices):
answer = []
for idx in range(len(prices)):
for j, compare in enumerate(prices[idx+1:]):

if prices[idx] > compare:

break
answer.append(j+1 if not idx == len(prices)-1 else 0)

return answer

두 번째 코드 (최적화 시도)>
def solution(prices):
answer = [0] * len(prices)
for idx in range(len(prices)):
for compare in prices[idx+1:]:

if prices[idx] <= compare:

answer[idx] += 1

elif prices[idx] > compare:
answer[idx] += 1
break

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 66/100 점 (문제는 맞췄는데, 효율성이 구데기)
def solution(prices):
    # prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. -> int()
    # prices의 길이는 2 이상 100,000 이하입니다. -> Input type : List()
    p_len = len(prices)
    answer = [0]  * p_len
    for idx in range(p_len):
        p = prices[idx]
        for compare_price in prices[idx+1:]:                          
            if p <= compare_price:            
                answer[idx] += 1    
            elif p > compare_price:
                answer[idx] += 1
                break

    return answer
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다.