Stack_Queue_기능개발_Level2

이하연·2021년 4월 3일
0

2021알고리즘

목록 보기
6/32

문제 링크


1. 내 코드

# progresses	speeds	return
# [93, 30, 55]	[1, 30, 5]	[2, 1]
# [95, 90, 99, 99, 80, 99]	[1, 1, 1, 1, 1, 1]	[1, 3, 2]



from collections import deque
import math

def solution(progresses, speeds):
    answer = []
    completeDays = deque()

    for i in range(len(progresses)) :
        # 테스트케이스11 불통 -> math.ceil 쓸땐 /로 해야 올림이 됨
        completeDays.append(math.ceil((100 - progresses[i]) / speeds[i]))


    while completeDays :
        standard = completeDays.popleft()
        cnt = 1
        for day in completeDays:
            if standard >= day:
                cnt += 1
            else:
                break

        for _ in range(cnt-1):
            completeDays.popleft()

        answer.append(cnt)

    return answer

print(solution([93, 30, 55],[1, 30, 5]))

결과

로고

평가

  • 테스트케이스 11 안됬었음 : 만약 아래 부분이 float형으로 나왔을 경우 값을 올림으로 처리해야하는데 // 으로 하면 math.ceil이 먹지 않음
(100 - progresses[i]) / speeds[i])
  • 여러개의 수학 함수를 이용할 수 있는 math모듈을 import 한다.
  • 실수를 올림 할 때는 math.ceil( ) 함수를 사용한다. ceil은 천장을 의미하며 실수의 바로 위 정수를 반환한다.
  • 실수를 내림 할 때는 math.floor( ) 함수를 사용한다. floor는 바닥을 의미하며 실수의 바로 아래 정수를 반환한다.

git링크

0개의 댓글