[코딩테스트/백준/Python]팩토리얼

Enter·2021년 8월 17일
0

코딩테스트

목록 보기
31/68

💡생각

  1. 재귀함수를 만들어 n에 n * 재귀함수(n-1)을 해줌.
  2. 메인함수에서 재귀함수 불러와 출력함.



❓잘못된 코드1

와.... 진짜 코드는 금방 짜서 코랩에서 돌려보고 정답 나오는거 확인한 다음에 채점했는데 런타임에러만 계속떠서 이것저것 다 해보고 한 시간 넘게 뻘 짓하다가

👆 이 말이 내 코드 위 첫째 줄에 정수 N이 백준사이트에서 자동으로 주어지는 줄 알았는데 (프로그래머스 사이트에서 알아서 주어지듯이...) 내가 input으로 입력을 받아야하는 거였다... 그거 알고나서 시간 아까워 죽는줄.... 프로그래머스만 풀다가 백준 처음푸니깐 적응이 정말 안된다...

def factorial(n):

  if n > 2:
    n *= factorial(n-1)
  elif n == 0:
    n = 1

  return n

def solution(num):
  print(factorial(num))

solution(N)

해결: 맨 첫줄에 input을 넣어주었음.



💡테스트 통과한 코드

N: 입력받은 정수 N(0 ≤ N ≤ 12).

  1. N을 입력받음.
  2. solution함수에 입력받은 N을 넣음.
  3. factorial함수(재귀함수)에 입력받은 N을 넣고 N이 2이상일 경우에는 n에 n * factorial(n-1)을 넣고 계속해서 factorial(n-1)함수를 실행시킴.
  4. 재귀함수 계산이 끝나고 결과가 나오면 n을 return하여 출력함.
  5. N이 0일 경우에는 1을 출력함.
N = int(input())

def factorial(n):

  if n > 2:
    n *= factorial(n-1)
  elif n == 0:
    n = 1

  return n

def solution(num):
  print(factorial(num))

solution(N)



⏬다른사람의 코드

input사건으로 인해... 지쳐서 다른사람의 코드는 찾아보지 않았음...







🔗백준 - 팩토리얼
https://www.acmicpc.net/problem/10872

profile
Cherish the moment :)

0개의 댓글