• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

궁금한것이 있습니다.

21.11.05 15:46 작성 조회수 167

0

안녕하세요!! 

강의 잘 보고 있습니다.

 

감사합니다 ㅎ__ㅎ

 

제가 여쭤보고자 하는것은 최근 문제 풀때 의아한점이 있어 관련내용을 선수강 후 해결과정에서 혼란을겪어 질문 남깁니다. 

 

외부 플랫폼 알고리즘 사이트에서 문제 해결 중 아래 코드 처럼 작성한것이 있고

1. check.append(int((percent/speeds[idx])+0.50))

또 아래와 같이 작성된 코드가 있었을때 

2. check.append(math.ceil(percent/speeds[idx]))

2번째 코드는 Pass를 받은 반면에 1번째 코드로 작성된 라인은 일부 코드가 Fail을 받았습니다. 

이 강좌에서 말씀하신 내용이 올림에 관한 내용인것 같아 외부 플랫폼 문제로 해결할때 적용해보았는데 1번이 왜 Fail을 받는지에 대한것과 오히려, 올림을 수행할 떄 2번과 같이 사용하는것이 더 정확한것인지 혼동이 되어 질문남깁니다.

 

문제 사이트는 https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 이며

작성된 코드는 하기와 같습니다.

import math

def solution(progresses, speeds):

    answer = []

    check = []

    for idx, progress in enumerate(progresses) : 

        percent = 100-progress

        check.append(int((percent/speeds[idx])+0.50))

        #check.append(math.ceil(percent/speeds[idx]))

    #print(check)

    cnt = 1

    compare = check[0]

    for j in range(1, len(check)) : 

        if compare>=check[j] : 

            cnt += 1

        else : 

            answer.append(cnt)

            cnt = 1

        compare = max(compare, check[j])

    answer.append(cnt)

    #print(answer)

    return answer

감사합니다. 

 

답변 1

답변을 작성해보세요.

0

안녕하세요^^

 check.append(int((percent/speeds[idx])+0.50))

위에 코드는 반올림을 하는 코드이지 올림을 하는 코드는 아닌것 같습니다.