[Python3] 프로그래머스 기능개발(stack)

민갱·2023년 7월 11일

CT

목록 보기
28/35

스택도 풀어봐야지

기능개발

    for i in range(len(progresses)):
        if (100 - progresses[i]) % speeds[i] > 0:
            tmp.append(((100 - progresses[i]) // speeds[i])+1)
        else:
            tmp.append((100 - progresses[i]) // speeds[i])
==            
    progresses2 = [math.ceil((100 - a) / b) for a, b in zip(progresses, speeds)]
  • 같다..ㅎㅎ 훨씬 깔끔하고 빠르다.
import math
def solution(progresses, speeds):
    answer = []
    progresses = [math.ceil((100 - a) / b) for a, b in zip(progresses, speeds)]
    front = 0
    for i in range(len(progresses)):
        if progresses[i] > progresses[front]:
            answer.append(i-front)
            front = i
        
    answer.append(len(progresses)-front)
    
    

    return answer

Note.

  • 리스트의 앞뒤로 무엇인가 꺼내와서 비교를 해야할 떄는 소스에서 front에 0을 넣어서 리스트 길이와 비교하는 것이 좋겠다.
profile
가보자고

0개의 댓글