Coding/프로그래머스

[프로그래머스] 기능개발(Lv.2) - (python 파이썬)

Kitsune_park 2025. 3. 20. 15:18

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42586

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

Approach : 작업하는데 남은 날들을 계산하여 day라는 리스트에 담고, 이 day리스트를 순회하면서 뒤에 숫자가 앞에 숫자보다 크지 않는부분에까지 숫자를 count해서 stack에 쌓는 아이디로 접근했다.

 

나의풀이 : 

 

import math
def solution(progresses, speeds):
    days = []
    answer = []
    for idx in range(0, len(progresses)):
        days.append(math.ceil((100-progresses[idx]) / speeds[idx]))
    maxnum, cnt = days[0], 0
    for day in days:
        if day > maxnum:
            maxnum = day
            answer.append(cnt)
            cnt = 1
            continue
        cnt += 1
    answer.append(cnt)
    return answer

 

 

 

 

maxnum을 통해서 비교해가면서 스택에 쌓아주는게 포인트같다. 스택/큐 관련해서 몇가지 비슷한 유형을 더풀어봐야겠다.