kim26361   4년 전

잘돌아가는데 런타임으로 봐서 입력방식의 문제인지 헷갈려서 질문드립니다

chsun0303   4년 전

우선 입력방식에는 문제가 없습니다.

입력방식에 문제가 있는지를 판단하려면, 내부로직을 싹 빼고 입력만 하는 코드를 돌려보시면 '틀렸습니다'가 나오는 것을 보고 알 수 있습니다.


런타임에러가 나오는 이유는 아래와 같습니다.

"가격은 0보다 크거나 같고, 1,000보다 작거나 같은 정수이다." 라고 문제에 나와있습니다.

a가 0일 경우, 0으로 `//` 혹은 `%`연산을 하게 되는데, 아래와 같은 메시지가 나오는 것을 확인 할 수 있습니다.

`ZeroDivisionError: integer division or modulo by zero`


chsun0303   4년 전

또한 위의 코드는 런타임에러의 문제만 가지고 있지 않습니다.

반례를 드리겠습니다.

6개 들어있는 패키지를 구매하는 것(3원)이 낱개로 4개를 구매하는 것(4원) 보다 쌉니다.

kim26361   4년 전

처음부터 잘못된 점을 잘못 인식하고 있었네요. 정확한 팩트 감사합니다!!! 

kim26361   4년 전

import sys

if __name__ == "__main__":
   need_line,n = map(int,sys.stdin.readline().split(' '))
   anser = 99999
     for i in range(n):
        pai,near = map(int,sys.stdin.readline().split(' '))
       if pai == 0 or near == 0:
            print(0)
            break
      min_line = pai
      if (need_line % 6) > min_line:
          min_money = pai * (need_line)
          print(anser)
      else:
           min_money = pai * (need_line)
      if min_money < anser:
      anser = min_money
print(anser)

문제점을 인식해서 고쳐봤는데 런타임은 고쳐졌는데 안되네요

댓글을 작성하려면 로그인해야 합니다.