본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 3][Python] 5692번 : 팩토리얼 진법

by 빛밤하늘 2021. 6. 26.
반응형

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

 

5692번: 팩토리얼 진법

상근이는 보통 사람들이 사는 것과는 조금 다른 삶을 사는 사람이다. 상근이는 이런 사람들의 시선이 부담스럽기 때문에, 자신만의 숫자를 개발하기로 했다. 바로 그 이름은 팩토리얼 진법이다.

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

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


# 0을 입력할 때까지 반복합니다.
while True:
    # 팩토리얼 진법 숫자를 입력합니다.
    # 길이는 최대 5자리입니다.
    # 맨 끝의 \n은 떼어줍니다.
    number = stdin.readline().rstrip()
    # 입력한 팩토리얼 진법 숫자의 길이를 저장하는 변수를 선언합니다.
    number_len = len(number)
    # 팩토리얼 진법 숫자를 10진법으로 읽은 값을 저장할 변수를 선언합니다.
    decimal_number = 0

    # 입력한 팩토리얼 진법 숫자가 0이라면
    if number == '0':
        # 반복문을 탈출합니다.
        break

    # 팩토리얼 진법 숫자의 길이만큼 반복합니다.
    for i in range(number_len):
        # 팩토리얼 진법 숫자에서 i번 자리의 값을 10진법으로 계산해 decimal_number에 더해줍니다.
        decimal_number += int(number[i]) * factorial(number_len - i)

    # 팩토리얼 진법 숫자를 10진법 숫자로 읽은 값을 출력합니다.
    print(decimal_number)

결과

 

 

 

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

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

반응형

댓글