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

'Algorithm > 백준' 카테고리의 다른 글

[백준] 10972 다음순열  (0) 2023.03.17
[백준] 156751 n과 m 3  (0) 2023.03.15
[백준] 15650 n과 m 2  (0) 2023.03.15
[백준] 15649 n과 m 1  (0) 2023.03.15
[백준] 11728 배열 합치기  (0) 2022.11.23

+ Recent posts