[python] 백준 5568번 카드 놓기알고리즘/백준2022. 2. 28. 22:46
Table of Contents
문제 풀이
예제 1을 보면 첫째 줄에 카드의 총 개수(4장), 둘째 줄에 총 카드 중 몇 장(2장)을 뽑을지
셋째 줄부터 마지막째 줄까지 4장의 카드의 숫자를 입력 (1, 1, 2, 12) 받는다.
무작위로 2장씩 짝지어 보면 아래의 그림과 같이 된다.
조합은 총 12개지만 중복되는 수가 있으므로 제외하면 7개라는 결괏값이 나온다.
python에서는 itertools 라이브러리에 내장되어 있는 permutations 함수가 있다.
이 permutations 함수는 위의 문제처럼 순열을 구할 때 잘 쓰이는 함수이다. 때문에 꼭 import를 해줘서 사용해야 한다.
완성된 코드!!👍😊
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))
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 13699번 점화식 (0) | 2022.03.02 |
---|---|
[python] 백준 2729번 이진수 덧셈 (0) | 2022.03.01 |
[python] 백준 1120번 문자열 (0) | 2022.02.27 |
[python] 백준 7120번 String (12) | 2022.02.21 |
[python] 백준 16499번 동일한 단어 그룹화하기 (0) | 2022.02.20 |
@펄찌 :: Pearl's Story
펄의 일상이 궁금한 사람 요기~
즐거운 하루 되셨으면 좋겠습니다😊