반응형
풀이
def solution(progresses, speeds):
answer = []
complete = [] # 배포일 배열
for i in range(len(progresses)): #1 배포일을 계산해 complete에 대입
temp = (100 - progresses[i]) // speeds[i]
if (100 - progresses[i]) % speeds[i] == 0:
complete.append(temp)
else:
complete.append(temp + 1)
count = 0 # 배포되는 기능 수
check = complete[0] # 처음 기능 배포일
for j in range(len(complete)): #2 배포되는 기능 수를 계산해 answer에 대입
if check >= complete[j]:
count += 1
else:
answer.append(count)
count = 1
check = complete[j]
answer.append(count) # 마지막 배포 추가
return answer
#1. complete라는 배열을 만들어 각 기능이 완성되어 배포 가능한 시기를 계산해 넣어주었다.
#2. complete 배열을 가지고 앞 기능과 비교해 함께 배포되는 수를 계산해 answer에 append 해주었다.
문제 풀이 후 다른 사람의 코드를 보고 알게된 점
1. 음수를 나눈 몫을 구한 후에 다시 양수로 바꿔주면 올림과 같다. (나는 그냥 나누고 나머지에 따라 + 1을 했다)
+ 올림은 ceil() , 버림은 floor() 반올림은 round()
2. 배열의 길이가 같다면 zip을 이용할 생각도 해보자
반응형
'개발 > PS' 카테고리의 다른 글
[Swift] 프로그래머스 Lv1 모의고사 (0) | 2022.02.19 |
---|---|
[Python] 프로그래머스 Lv1 신고 결과 받기 (0) | 2022.01.23 |
[Python] 프로그래머스 Lv1 완료하지 못한 선수 (0) | 2022.01.03 |
[Python] 프로그래머스 Lv2 타켓넘버 (DFS, BFS) (0) | 2022.01.01 |
[Python] 프로그래머스 LV1 실패율 (0) | 2022.01.01 |