프로그래머스 - 팩토리얼(파이썬)

박진우·2022년 11월 7일
0

알고리즘

목록 보기
66/89

💡프로그래머스 - 팩토리얼

◽ 문제




◽ 입력 & 출력




◽ 풀이

  • 먼저 코드 설명에 앞서 풀고나니깐 더 훨씬 간결한 코드가 생각났지만 둘다 풀이를 써볼려고 한다.
  • 1번째 줄: factorial을 사용하기위해 math를 import한다.

  • 4번째 줄: factorial저장할 빈 리스트를 선언한다.

  • 6번째 줄 for문: n의 범위가 0 < n ≤ 3,628,800 이고 3,628,800은 10!이기 때문에 1부터 10까지 factorial을 저장하기위해 범위를 지정한다.

  • 7번째 줄: math.factorial()을 이용하여 1~10까지 factorial을 구하여 리스트에 append()한다.

  • factorial_array 출력 결과

  • 10번째 줄: 0부터9까지 j의 범위를 지정하고, n과 j번째의 팩토리얼 값이 같으면 인덱스 이기 때문에 0부터 9까지 저장되어있지만 +1 해주어 n!
    n을 return한다.

  • 14번째 줄: if문에 부합하지 않고 n이 factorial_array에 저장되어 있는 값중 j번째 보다 크고 j+1번째보다 작으면

    즉 n이하의 최대 팩토리얼을 return한다.

  • 이것도 똑같이 0부터 시작인 인덱스로 저장되어 있기 때문에 +1해줘서 return한다.




✅ 다른 풀이

  • 4번째 줄: 범위의 제한이 10까지이기 때문에 k를 10으로 초기화해준다.

  • 5번째 줄 while문: n값이 팩토리얼 값보다 작을때까지만 반복한다.

  • while문 출력 결과

    TC2에서 4!보다 작은 3!(6)을 return한다.

  • 9번째 줄: 최대 팩토리얼 k를 return한다.




💡배운점

✅ factorial

◽ math.factorial

import math
math.factorial(1000)




◽ for문




◽ 재귀





math모듈 ➡️https://wikidocs.net/21116

0개의 댓글