Algorithm/백준

[백준] 16922 로마 숫자 만들기

sunnyshiny 2023. 3. 6. 18:40
728x90

https://www.acmicpc.net/problem/16922

 

16922번: 로마 숫자 만들기

2, 6, 10, 11, 15, 20, 51, 55, 60, 100을 만들 수 있다.

www.acmicpc.net

 

from itertools import combinations_with_replacement
n = int(input())
array = [1, 5, 10, 50]
s = set()
for i in combinations_with_replacement(range(4), n):
    sum = 0
    for j in i:
        sum+= array[j]
    s.add(sum)
print(len(s))

중복조합문제 이다. python에서는 편리하게 module을 제공하고 있어서 이를 사용하였다. 

처음엔 풀이대로 array에 숫자 대신 문자로 하여 복잡한 코드를 짜게 되었다. 장고 끝에 숫자로 변환해서 한 코드를 참고 하여 간단한 코드를 만들 수 있게 되었다.  

728x90