알고리즘(algo)/백준

[백준] 15650번 - N과 M (2)

dDong2 2023. 2. 9. 10:24
참고: https://www.acmicpc.net/problem/15650

 

✔️ 문제

 

 

문제는 다음과 같다.

 

 

✔️ 풀이

 

 

이전과 동일한 예제로 보이지만,

예제 입력 3을 보았을 때, 1 2 3 4만 출력되는 것을 확인할 수 있다.

즉, 조합하는 경우에 1 2 3 4와 2 4 3 1은 같은 수열이기 때문에

하나만 출력되는 것이고 예제 2에서는 같은 조합이 없기 때문에

6번 모두가 출력되는 것이다.

 

그렇기에 이전 문제에서 사용한

permutations 함수가 아닌 combinations 함수를 통해

해결 할 수 있으며 N개에서 중복하지 않는 조합을 뽑아낸다.

 

from itertools import combinations

n,m=map(int, input().split())
data = list(combinations([i for i in range(1, n+1)], m))

for i in range(len(data)): print(*data[i])

 

이전 게시글을 참고하자.

(https://slumpdev.tistory.com/entry/%EB%B0%B1%EC%A4%80-15649%EB%B2%88-N%EA%B3%BC-M-1)

 

화이팅 💪