[TIL]Day 5

이재희·2020년 12월 4일
0

TIL

목록 보기
5/312

파이썬 2차원 리스트의 중복 제거

#items는 2차원 list
items = list(set([tuple(item) for item in items]))

파이썬에서 3항 연산자

# result = condition and when True or when False;
result = a == b and a-b or a+b

연습문제 오답노트

def solution(progresses, speeds):
    answer = []
    days = []
    for i in range(len(progresses)):
        e = 100 - progresses[i]
        d = e % speeds[i] == 0 and e//speeds[i] or e//speeds[i] + 1
        days.append(d)
    c = 1
    for i in range(0,len(days)-1):
        if days[i] >= days[i+1]:
            c += 1 
        else:
            if len(days) != i-2:
                answer.append(c)
            c = 1
    answer.append(c)
    return answer

이게 틀린이유는 기준이 바로 전꺼가 아니라 뽑은 애 기준으로 해야해서임...
스택으로 다시 구현.

수정된 코드

def solution(progresses, speeds):
    answer = []
    days = []
    for i in range(len(progresses)):
        e = 100 - progresses[i]
        d = e % speeds[i] == 0 and e//speeds[i] or e//speeds[i] + 1
        days.append(d)
    c = 1
    p = days.pop(0)
    while days:
        t = days.pop(0)
        if p >= t:
            c += 1
        else:
            answer.append(c)
            p = t
            c =1
    answer.append(c)    
    return answer
profile
오늘부터 열심히 산다

0개의 댓글