Skip to content

Commit

Permalink
[Bronze III] Title: 팩토리얼 진법, Time: 236 ms, Memory: 118172 KB -Baekjoo…
Browse files Browse the repository at this point in the history
…nHub
  • Loading branch information
hmnd1257 committed Jul 18, 2023
1 parent 41818fe commit 40f1058
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
26 changes: 26 additions & 0 deletions 백준/Bronze/5692. 팩토리얼 진법/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# [Bronze III] 팩토리얼 진법 - 5692

[문제 링크](https://www.acmicpc.net/problem/5692)

### 성능 요약

메모리: 118172 KB, 시간: 236 ms

### 분류

사칙연산, 수학

### 문제 설명

<p>상근이는 보통 사람들이 사는 것과는 조금 다른 삶을 사는 사람이다. 상근이는 이런 사람들의 시선이 부담스럽기 때문에, 자신만의 숫자를 개발하기로 했다. 바로 그 이름은 팩토리얼 진법이다. 팩토리얼 진법은 각 자리에 올 수 있는 숫자는 0부터 9까지로 10진법과 거의 비슷하다. 하지만, 읽는 법은 조금 다르다. 팩토리얼 진법에서는 i번 자리의 값을 a<sub>i</sub>×i!로 계산한다. 즉, 팩토리얼 진법에서 719는 10진법에서 53과 같다. 그 이유는 7×3! + 1×2! + 9×1! = 53이기 때문이다.</p>

<p>팩토리얼 진법으로 작성한 숫자가 주어졌을 때, 10진법으로 읽은 값을 구하는 프로그램을 작성하시오. </p>

### 입력

<p>입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 최대 5자리인 팩토리얼 진법 숫자가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다.</p>

### 출력

<p>각 테스트 케이스에 대해서, 입력으로 주어진 팩토리얼 진법 숫자를 10진법으로 읽은 값을 출력한다.</p>

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import sys

def fac(n):
if n<=1:
return 1
return n * fac(n-1)

while True:
result = 0
n = sys.stdin.readline().rstrip()
if n=='0':
break
for kdx, k in enumerate(n[::-1]):
result += fac(kdx+1) * int(k)
print(result)

0 comments on commit 40f1058

Please sign in to comment.