[백준/파이썬] 10842. 팩토리얼

jwKim·2023년 1월 8일
0

💻코테코테

목록 보기
22/42

< 과제 >

[ 문제 ]
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

[ 입력 ]
첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

[ 출력 ]
첫째 줄에 N!을 출력한다.

[ 예제 입력 1 ]
10

[ 예제 출력 1 ]
3628800

< 내 코드 >

# 제출 코드 1 - 런타임 에러 발생
def factorial(n):
    if n == 1 :
        return 1
    else:
        return n * factorial(n-1)
    
N = int(input())
print(factorial(N))
# 제출 코드 2 - 제출 성공
N = int(input())
result = 1

for i in range(N, 0, -1):
    result *= i

print(result)

< 피드백 >

  • 처음에는 재귀함수로 작성했다. VS code에서 테스트를 완료한 코드여서 코드 상의 에러는 없었을 텐데 이상하게도 런타임 에러가 발생했다.
  • 그래서 반복문을 사용하여 코드를 다시 작성했다. 2 번째 코드는 다행히 런타임 에러가 발생하지 않아서 제출을 완료 할 수 있었다.


  • 입력을 여러 줄 받을 때 input()을 사용하면 런타임 에러가 발생하는 문제가 있다고 한다. 이럴 때에는 sys.stdin.readline()을 사용한다고 한다. 앞으로 필요할 수도 있는 내용이니 꼭 기억하기!

< 출처 >

0개의 댓글