😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[15649] N과 M (1) / 파이썬 (순열 라이브러리)

또방91 2021. 11. 28. 21:55
728x90

 

문제 링크: https://www.acmicpc.net/problem/15649

 

 

15649번: N과 M (1)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

최근에 배운 itertools 라이브러리 덕분에 쉽게 문제 아이디어를 캐치할 수 있었다!

순열!! itertools.permutations!!


정답은 ??

1
2
3
4
5
6
7
8
9
10
#순열 라이브러리 알고있으면 겁나 쉬운 문제!
# m개 중 n개 뽑기! 순서상관있음!
 
import itertools
 
m,n=map(int,input().split())
result=itertools.permutations(range(1,m+1),n)
 
for i in result:
    print(*i) #안에 든거가 하나씩 나와야하니까
cs

💯 풀이 과정

문제를 보면 m개 중에 n개 뽑는 것과 같다!

예제 입력 2에서 result를 그냥 반복문 출력해본다면, result가 아래와 처럼 있을 것이다.

(1, 2)
(1, 3)
(1, 4)
(2, 1)
(2, 3)
(2, 4)
(3, 1)
(3, 2)
(3, 4)
(4, 1)
(4, 2)
(4, 3)

이 위에 것들을 각 요소 하나씩 뽑아야하니까 i 앞에 *을 넣는다!

이 때 *별표의 쓰임은 순회하면서 출력할 때 의미!

 

아래 사이트에서 4번째 방법에 해당된다!

참고사이트:https://mingrammer.com/understanding-the-asterisk-of-python/

 

파이썬의 Asterisk(*) 이해하기

파이썬은 타 언어에 비해 비교적 연산자 및 연산의 종류가 풍부한 편이다. 특히 파이썬이 지원하는 많은 연산자중 하나인 **Asterisk(*)**는 단순히 곱셈

mingrammer.com


😎오늘의 한줄평: 간단하게 쓰려면 역시나 라이브러리를 많이 익히자!

728x90