본문 바로가기

코딩 테스트/백준

[Python] 백준 27433 팩토리얼 2

 

문제 분석

  • 펙토리얼

 

코드 설계

  • 정수를 입력받고 입력받은 정수에 대한 펙토리얼 값을 계산하여 return

 

정답 코드

1차 - TypeError: 'str' object is not callable

import sys
input = sys.stdin.readline().rstrip()

n = int(input())
sum = 1

def factorial(i) :
    if i == 0 or i == 1 : # 종료 조건
       return 1

    sum = i * factorial(i-1)

print(factorial(n))
  • 코드에서 input이라는 이름을 변수로 사용했기 때문에 에러 발생 (by chatGPT)
  • sys.stdin.readline().rstrip()이라는 구문으로 input 함수를 덮어써서, 이후 input()을 호출하려고 할 때 str 객체가 호출 가능하지 않다는 에러가 발생
  • input 대신 user_input을 사용하여 input() 내장 함수를 덮어쓰지 않도록 수정

 

2차 - 성공

import sys
input_user = sys.stdin.readline().rstrip()

n = int(input_user)
sum = 1

def factorial(i) :
    if i == 0 or i == 1 : # 종료 조건
       return 1

    return i * factorial(i-1)

print(factorial(n))