https://programmers.co.kr/learn/courses/30/lessons/42586
로직
- progress가 100% 이상이 되기 까지 필요한 일수(days)를 계산
- lst에 모든 days를 넣어주었다.
- 계산된 days를 iterate하면서 다음과 같은 조건문으로 답을 구했다.
- if prev가 초기화 값(0)이면 prev에 값을 넣어준다.
- elif prev < 현재 days 값이면 현재 count값을 answer 리스트에 넣어주어 count를 종료, count를 새로 시작해준다.
- else prev >= 현재 days 값이면 count해준다. (앞에 있는 기능이 배포될 때 함께 배포 가능)
- for문 밖을 빠져나올 때, counter 값이 0이 아니라면 마지막 배포가 아직 안끝난 상황이므로 counter를 answer에 넣어준다.
- 리턴
코드
import math
def solution(progresses, speeds):
answer = []
lst = []
for p, s in zip(progresses, speeds):
days = math.ceil((100 - p)/s)
lst.append(days)
prev, counter = 0, 0
for x in lst:
if prev == 0:
prev = x
counter +=1
elif prev < x:
answer.append(counter)
counter = 1
prev = x
else:
counter +=1
if counter > 0:
answer.append(counter)
return answer
TIP
Math 라이브러리
- progress가 100% 이상이 되기 까지 필요한 일수를 계산하기위해 올림을 사용
import math
math.ceil() # 올림
math.floor() # 내림
math.trunc() # 버림
round() # 반올림
zip()
- iterables한 데이터(list, string, dict 등) 두 개를 받아 같은 인덱스의 element끼리 tuple로 묶어준다.
- ex) lst1 = ['a', 'b', 'c'] lst2 = ['1','2'] zip(lst1, lst2) = [('a', '1'), ('b', '2')]
'코테 준비' 카테고리의 다른 글
[프로그래머스] 세 소수의 합 (0) | 2020.09.18 |
---|---|
[프로그래머스] 빙고 (0) | 2020.09.12 |
[카카오 2020 코테 #1] 문자열 압축 - python (0) | 2020.09.10 |
[프로그래머스 - heap] 더 맵게 (0) | 2020.09.07 |
[프로그래머스 - BFS] FloodFill (0) | 2020.09.05 |