15469 - N과 M(1)
#INDEX
1.문제 설명
2.입력
3.출력
4.예제 입출력
5.제출 코드
문제 설명
자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.
- 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열
입력
첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)
출력
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.
수열은 사전 순으로 증가하는 순서로 출력해야 한다.
예제 입출력
input: 3 1
output:
1
2
3
input: 4 2
output:
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
제출 코드
import sys
import itertools
n,m = map(int, sys.stdin.readline().split())
n = [i+1 for i in range(n)]
p = list(itertools.permutations(n, m))
for value in p:
# print(*(list(value)))
print(' '.join(map(str, value)))
위 문제는 순열을 알고있는지 묻는 문제다.
n,m
을 입력받고 n
을 iterable
한 자료형으로 변경해주기 위해n = [i+1 for i in range(n)]
구문을 통해 1~n 까지의 정수를 원소로 갖는 리스트를 생성한다.
이후, itertools.permutations
를 이용해 문제 조건에 맞는 순열을 생성한다.
생성한 순열들은 기본적으로 튜플 자료형으로 생성되며 이를 순회하며 list
로 캐스팅하여 모든 원소를 출력해준다.
'Algorithm & SQL > Baekjoon' 카테고리의 다른 글
[Algorithm] [Python] 백준/BOJ - 11655_ROT13 (0) | 2020.05.06 |
---|---|
[Algorithm] [Python] 백준/BOJ - 1966_프린터 큐 (0) | 2020.05.05 |
[Algorithm] [Python] BOJ/백준 - 10799_쇠막대기 (0) | 2020.04.19 |
[Algorithm] [Python] BOJ/백준 - 10866_덱 (0) | 2020.04.18 |
[Algorithm] [Python] BOJ/백준 - 9012_괄호 (0) | 2020.04.17 |