본문 바로가기
👩‍💻 Programming/Coding Test 문제 풀이

[Baekjoon] 10872 팩토리얼(파이썬/자바스크립트/NodeJS)

by codingBear 2023. 1. 2.
728x90
반응형

이번 문제는 아래 링크에서 풀어볼 수 있습니다.

 

10872번: 팩토리얼

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

www.acmicpc.net


문제

0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 정수 N(0 ≤ N ≤ 12)이 주어진다.

출력

첫째 줄에 N!을 출력한다.

예제 입력 1

10

예제 출력 1

3628800

예제 입력 2

0

예제 출력 2

1

정답 코드

나의 답안
파이썬 Ver.
import sys

n = int(sys.stdin.readline().rstrip())


def mySolution(n):
    return n * mySolution(n - 1) if n > 1 else 1


자바스크립트/NodeJS Ver.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim();

input = parseInt(input);

const answer1 = (num) => {
    return num > 1 ? num * answer1(num - 1) : 1;
};

console.log('answer1', answer1(input));
답안 1
파이썬 Ver.
import sys

n = int(sys.stdin.readline().rstrip())


def answer1(n):
    result = 1

    for i in range(1, n + 1):
        result *= i

    return result


print("answer1", answer1(n))


자바스크립트/NodeJS Ver.

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim();

input = parseInt(input);

const answer2 = (num) => {
    let result = 1;

    for (let i = 1; i <= num; i++) {
        result *= i;
    }

    return result;
};

console.log('answer2', answer2(input));
답안 2
import math
import sys

n = int(sys.stdin.readline().rstrip())


def answer2(n):
    return math.factorial(n)


print("answer2", answer2(n))

문제 풀이

 팩토리얼을 코드로 구현하면 되는 문제이다. 팩토리얼이란 특정 숫자보다 작거나 같은 모든 양의 정수의 곱이다. 예를 들어 숫자 5가 주어지면 5의 팩토리얼(5!)은 5 * 4 * 3 * 2 * 1 = 120이다.

 팩토리얼을 파이썬으로 구현하는 방법은 크게 3가지가 있다. 재귀, 반복문, 내장 모듈이다. 재귀의 경우 매개변수에 입력값 n을 전달하여 n이 1보다 클 동안 n * n - 1을 수행한다. 여기서 주목할 점은 n - 1을 다시 함수의 매개변수로 전달한다는 점인데 이로써 순차적으로 1씩 감소시킬 수 있는 것이다.


함께보기

https://manniz.tistory.com/entry/Python%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%8C%A9%ED%86%A0%EB%A6%AC%EC%96%BCfactorial-%EA%B5%AC%ED%98%84-3%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95for%EC%9E%AC%EA%B7%80math%EC%86%8C%EC%8A%A4-%EC%BD%94%EB%93%9C

 

[Python]파이썬 팩토리얼(factorial) 구현 3가지 방법(for/재귀/math)소스 코드

오늘은 파이썬을 이용하여 팩토리얼을 구하는 3가지 방법에 대해서 알아보겠습니다. 방법 하나. for 반복문 사용 방법 둘. 재귀함수 사용 방법 셋. math library 사용 우선 구현하고자하는 팩토리얼

manniz.tistory.com

728x90
반응형

댓글