-코드
from math import factorial
n = int(input())
if n == 0:
print('NO')
else:
for i in range(20, -1, -1):
if n >= factorial(i):
n -= factorial(i)
if n == 0:
break
if n == 0:
print('YES')
else:
print('NO')
처음에 팩토리얼을 1부터 빼주는 식으로 했으나 틀려서 찾아보니 큰 수부터 빼주는 것과 최대 크기가 팩토리얼 20에 끝나는 것을 알고 해결하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]1740번 거듭제곱 (0) | 2021.09.23 |
---|---|
[백준/파이썬]3613번 Java vs C++ (0) | 2021.09.17 |
[백준/파이썬]17254번 키보드 이벤트 (0) | 2021.09.15 |
[백준/파이썬]14606번 피자 (Small) (0) | 2021.09.15 |
[백준/파이썬]17294번 귀여운 수~ε٩(๑> ₃ <)۶з (0) | 2021.09.14 |