[백준/Python] 10872번 팩토리얼, Python의 math 모듈

2024. 11. 18. 21:45·CodingTest

💾10872 - 팩토리얼

 

 

📍 문제 해석

팩토리얼: 1부터 N까지의 정수를 모두 곱한 값 (단, 0! = 1임)

문제의 제약: 0≤N≤12 이므로 계산량이 작아 효율적인 알고리즘 고민할 필요가 없다.

구현 방식: 재귀함수, 반복문, Python의 math.factorial


📍 내 답안

def Factorial(n):
    if n<=1 :
        return 1
    else:
        return n*Factorial(n-1)
print(Factorial(int(input())))

 

처음엔 이렇게 했는데, 범위가 커지면 재귀함수는 비효율적일 것이다.

(재귀 호출은 스택 사용량이 증가하기때문에 큰 입력에서는 비효율)

다른 방법이 더 좋을 것 같다.

 

📍 다른 답안

반복문 

def Factorial(n):
    result = 1
    for i in range(2, n+1):
        result *= i
    return result
n= int(input())
print(Factorial(n))

반복문을 사용하면 스택 사용 없이 안정적으로 동작함

 

python 표준 라이브러리 - math.factorial()

import math

n = int(input())
print(math.factorial(n))

- Python 표준 라이브러리를 사용하는 것이 가장 간단하고 효율적임

-- 내부적으로 최적화되어 있어 속도, 안정성 면에서 우수하기 때문

 

 

Python의 math 모듈 

수학적 연산이나 효율적인 계산 필요할 때 유용하다.

아직 코딩테스트를 많이 접하지 못해서 얼마나 자주 나오는지는 모르겠지만

일단 적어두는 math 모듈 관련 

 

1. 팩토리얼 계산 

math.factorial(n)

조합, 순열, 재귀적 수열 문제

 

2. 최대공약수

math.gcd(a, b)

분수 간소화, 배열의 공통 약수 문제

 

3. 소수점 처리

math.floor(x) : x 이하의 가장 큰 정수 (내림)

math.ceil(x) : x이상의 가장 작은 정수 (올림)

math.trunc(x) : x의 정수 부분만 취함 (버림)

정수형 범위 처리, 좌표 문제에서 정수 변환

 

4. 제곱근

math.sqrt(x)

피타고라스 정리, 거리 계산, 소수 판별

 

5. 제곱 및 로그 계산

math.pow(x, y) : x의 y제곱

(단, **연산자가 더 빠름!!)

math.log(x, base): 밑이 base 인 로그 계산

지수 함수나 로그 문제

 

6. 최소공배수

math.lcm(a, b) (Pytnon 3.9이상)

시간 동기화 문제, 주기 계산

 

6. 콤비네이션과 순열

math.comb(n, r): n개 중 r개를 선택하는 조합 nCr

math. perm(n, r): n개 중 r개를 선택하는 순열 nPr

조합 순열 문제

'CodingTest' 카테고리의 다른 글

[Python] sys 모듈 sys.stdin.read(), sys.stdin.readline()  (1) 2024.11.24
[백준/Python] 10950번 A+B -3, sys 모듈  (0) 2024.11.24
[백준] 10869번: 사칙연산  (1) 2024.10.07
[프로그래머스] 짝지어 제거하기 - 12973  (0) 2024.07.02
'CodingTest' 카테고리의 다른 글
  • [Python] sys 모듈 sys.stdin.read(), sys.stdin.readline()
  • [백준/Python] 10950번 A+B -3, sys 모듈
  • [백준] 10869번: 사칙연산
  • [프로그래머스] 짝지어 제거하기 - 12973
콩챠무
콩챠무
개발 메모장
  • 콩챠무
    콩챠무 개발
    콩챠무
  • 전체
    오늘
    어제
    • 분류 전체보기 (14)
      • Tip (2)
      • Spring (0)
      • ReactNative (1)
      • GIS (1)
      • 알고리즘 (0)
      • AI (1)
      • CodingTest (5)
      • CSS (0)
      • React (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    리액트책추천
    스프링
    오류
    타입스크립트
    티스토리챌린지
    파이썬
    코딩테스트
    리액트책
    리액트
    오블완
    백준
    백엔드
    SYS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
콩챠무
[백준/Python] 10872번 팩토리얼, Python의 math 모듈
상단으로

티스토리툴바