![[python] 백준 15651번 N과 M (3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F2a5Kx%2FbtrwrHn4SCd%2FAAAAAAAAAAAAAAAAAAAAADopGx0TcUcJxjbyR1ZSzHkIoj4LhOcYEmMmoiaHUhag%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DJEnKoonV62oovslwmYYyQOAizZg%253D)
[python] 백준 15651번 N과 M (3)알고리즘/백준2022. 3. 19. 23:47
Table of Contents
문제 풀이
예제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)))
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[python] 백준 15650번 N과 M (2) (0) | 2022.03.17 |
---|---|
[python] 백준 15649번 N과 M (1) (0) | 2022.03.16 |
[python] 백준 20044번 Project Teams (4) | 2022.03.11 |
[python] 백준 8892번 팰린드롬 (0) | 2022.03.10 |
[python] 백준 17219번 비밀번호 찾기 (0) | 2022.03.09 |
@펄찌 :: Pearl's Story
많은 생각들을 가지고 있고 사람들과 대화를 하는 것이 즐거운 펄의 스페이스입니다.
즐거운 하루 되셨으면 좋겠습니다😊