알고리즘/백준
[python] 백준 15651번 N과 M (3)
펄찌
2022. 3. 19. 23:47
문제 풀이
예제2 입/출력을 보게 되면 아래의 그림과 나타낼 수 있는데
이전에 풀었던 permutations 문제와 조금 다르다.
[python] 백준 15649번 N과 M (1)
문제 풀이 N과 M의 입력이 주어지는데 N과 M의 조건은 아래와 같다. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 쉽게 말해 N에 4, M에 2가 들어왔을 경우 1, 2, 3, 4 중에 2개를 고르면 아래
begin-dev-awos.tistory.com
permutations 문제에서는 자기 자신을 제외한 순서쌍이었는데 이번 문제는 자기 자신을 포함한 모든 수의 순서쌍이다.
파이썬에서 itertools 라이브러리의 product 함수가 있어 풀 수 있는 문제이다.
아래의 링크에 product 함수에 대한 설명이 있다. 수학에서는 데카르트 곱이라고 나타내는데 모든 경우의 수의 쌍을 표현할 수 있다.
itertools — Functions creating iterators for efficient looping — Python 3.10.3 documentation
docs.python.org
완성된 코드!!👍😊
import re
from itertools import product
N, M = map(int, input().split())
numbers = sorted(str(val) for val in range(1, N + 1))
# repeat 키워드를 이용하여 반복할 횟수 지정
for key in product(numbers, repeat=M):
# 결과값이 튜플로 나와 값만 뽑기 위해 정규식 사용
print(re.sub(r'[^0-9\s]', '', str(key)))