문제링크 : 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을 통해서 비교해가면서 스택에 쌓아주는게 포인트같다. 스택/큐 관련해서 몇가지 비슷한 유형을 더풀어봐야겠다.
'Coding > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
---|---|
[프로그래머스] 다리를 지나는 트럭 (Lv.2) - (python 파이썬) (0) | 2025.03.26 |
[프로그래머스] 같은 숫자는 싫어(Lv.1) - (python 파이썬) (0) | 2025.03.20 |
[프로그래머스] 주식가격 - (python 파이썬) (0) | 2022.04.07 |
[프로그래머스] 더 맵게 - (python 파이썬) (0) | 2022.03.07 |