문제 링크 https://www.acmicpc.net/problem/5568
5568번: 카드 놓기
예제 1의 경우 상근이는 11, 12, 21, 112, 121, 122, 212를 만들 수 있다.
www.acmicpc.net
풀이
- 순열 사용해서 풀었다.
- 숫자들의 순열을 구하고 각 케이스별 연결한 숫자 set(중복 제거를 위해) 에 추가
- set의 개수 출력
from itertools import permutations
import sys
input = sys.stdin.readline
n = int(input())
k = int(input())
data = []
for _ in range(n):
data.append(int(input()))
# 순열 구하기
permute = list(permutations(data,k))
result = set()
for i in permute:
# 숫자들을 연결해야 하므로 문자로 바꿔서
s = "".join(map(str,i))
result.add(s)
print(len(result))
'개발 > algorithm' 카테고리의 다른 글
[백준 1769번] 3의 배수 - python (0) | 2022.03.10 |
---|---|
[백준 17478번] 재귀함수가 뭔가요 ? -python (0) | 2022.03.10 |
[프로그래머스][level2] 순위 검색 - python (0) | 2022.03.08 |
[프로그래머스][level2] 피로도 -python (0) | 2022.03.08 |
[프로그래머스][level2] 양궁 대회 -python (0) | 2022.03.08 |