본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1276번 : 팩토리얼 계산

by 빛밤하늘 2021. 9. 13.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

팩토리얼 계산

 int범위에서 답이 나오도록 n을 수정했습니다.

codeup.kr

 

 

 

주의해야 할 점

1. readline과 int나 float를 사용하는 입력 방식

readline을 사용해서 입력할 때는 맨 끝에 \n이 붙어서 입력됩니다.

하지만, 입력한 값을 int나 float으로 처리해 정수, 실수형으로 만들어 줄 때는 

굳이 \n을 떼기 위해 rstrip을 사용할 필요가 없습니다.

숫자 형태를 만들어줄 때 자동으로 사라집니다.

num = int(sys.stdin.readline())

 

2. 팩토리얼을 계산하는 방법

지금 이 포스팅에서는 단순히 1부터 n까지 곱해나가는 반복문을 이용해서 풀었습니다.

팩토리얼 알고리즘에 대해서 검색해보면 재귀를 이용해서 팩토리얼을 구하는 방법이 매우 많이 나옵니다.

재귀를 이용해서도 한 번 구현해봅시다.

 

그리고 파이썬의 math 모듈에서는 팩토리얼을 반환하는 factorial 함수가 따로 제공됩니다.

재귀를 사용해서 팩토리얼을 구해봤다면 이것도 한 번 해보세요.

매우 편합니다. 👍👍

 

 

예제 설명

1. 첫 번째 예제

- 입력

5

 

- 출력

120

 

- 설명

입력한 자연수 n은 5입니다.

5의 팩토리얼 값인 5!은 5 * 4 * 3 * 2 * 1 = 120입니다.

따라서 120을 출력합니다.

 

 

생각한 풀이 과정

n <= 12인 자연수 n을 입력합니다.

n의 팩토리얼 값인 n!을 저장할 변수 n_factorial을 선언합니다.

팩토리얼은 누적 곱이므로 1로 초기화합니다.

 

2부터 n까지 반복해봅니다.

현재 숫자를 n_factorial에 곱해줍니다.

 

반복문이 끝나고 n! 값인 n_factorial의 값을 출력합니다.

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 자연수 n을 입력합니다.
# n <= 12
# int형으로 변환합니다.
n = int(stdin.readline())
# 팩토리얼 n인 n! 값을 저장할 변수를 선언합니다.
# 곱셈 누적 값이므로 1로 초기화합니다.
n_factorial = 1

# 2부터 n까지 반복해봅니다.
for num in range(2, n + 1):
    # n_factorial에 현재 숫자를 곱해줍니다.
    n_factorial *= num

# n! 값인 n_factorial의 값을 출력합니다.
print(n_factorial)

 

 

제출 결과

CodeUp 1276번 : 팩토리얼 계산에서 코드 제출 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글