백준 16922 로마 숫자 만들기
n = int(input())
ans = set()
m = [1, 5, 10, 50]
def go(l):
if len(l) == n:
ans.add(sum(l))
return
for i in m:
go(l + [i])
go([])
print(len(ans))
시간초과 : 단순 재귀 중복되는 것들도 모두 찾음
n = int(input())
ans = set()
m = [1, 5, 10, 50]
def go(l):
if len(l) == n:
ans.add(sum(l))
return
for i in range(len(m)):
if l[-1] <= m[i]:
go(l + [m[i]])
for i in range(4):
go([m[i]])
print(len(ans))
중복을 없앤 재귀
Author And Source
이 문제에 관하여(백준 16922 로마 숫자 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gmlwlswldbs/백준-16922-로마-숫자-만들기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)