알고리즘/백준
[python] 백준 5568번 카드 놓기
펄찌
2022. 2. 28. 22:46
문제 풀이
예제 1을 보면 첫째 줄에 카드의 총 개수(4장), 둘째 줄에 총 카드 중 몇 장(2장)을 뽑을지
셋째 줄부터 마지막째 줄까지 4장의 카드의 숫자를 입력 (1, 1, 2, 12) 받는다.
무작위로 2장씩 짝지어 보면 아래의 그림과 같이 된다.
조합은 총 12개지만 중복되는 수가 있으므로 제외하면 7개라는 결괏값이 나온다.
python에서는 itertools 라이브러리에 내장되어 있는 permutations 함수가 있다.
이 permutations 함수는 위의 문제처럼 순열을 구할 때 잘 쓰이는 함수이다. 때문에 꼭 import를 해줘서 사용해야 한다.
05-05 itertools.permutations - 순열
`itertools.permutations(iterable, r=None)` 함수는 iterable 요소의 길이 r에 해당하는 순열을 리턴하는 함수이다. ## 문제 1, ...
wikidocs.net
완성된 코드!!👍😊
from itertools import permutations
n = int(input())
k = int(input())
card_l = list(input() for _ in range(n))
rs = set()
for val in permutations(card_l, k):
# 순열을 구하지만 set() 집합으로 중복을 피해줌
rs.add(''.join(val))
print(len(rs))