Baekjoon
[BOJ / 백준] 16922번 로마 숫자 만들기 파이썬(Python) 문제 풀이
s_ih_yun
2021. 7. 21. 01:07
728x90
문제
문제 링크 : https://www.acmicpc.net/problem/16922
16922번: 로마 숫자 만들기
2, 6, 10, 11, 15, 20, 51, 55, 60, 100을 만들 수 있다.
www.acmicpc.net
CODE
from itertools import combinations_with_replacement
n = int(input())
result = []
numbers = [1, 5, 10, 50]
for temp in combinations_with_replacement(range(4), n):
sum = 0
for i in temp:
sum += numbers[i]
result.append(sum)
print(len(set(result)))
풀이
우리의 편리한 파이썬은 모든 가능한 조합을 구하는 함수를 제공하는 itertools의 combinations 가 있다..!
모든 조합의 합을 구하고 리스트에 저장한 뒤, 리스트의 중복을 없앤다
리스트에서 중복값을 방법에는 두 가지가 있다
1. 집합 자료형 set을 이용
2. 리스트 요소를 순회하면서 중복 여부를 체크하여 제거
for문을 통해 구현해야 하는 두 번째 방법 대신 첫 번째 방법을 이용하여 result 리스트의 중복을 없앴습니다!
결과
728x90