본문 바로가기
백준

[백준] 15651번 : N과 M (3) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 12. 17.
728x90
반응형

 

 

15651번: N과 M (3)

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

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 가능한 모든 경우의 수인 중복 조합을 구하기 위해 product() 함수를 불러온다. from itertools import product
  3. 두 자연수를 입력받는다. N, M = map(int, sys.stdin.readline().split())
  4. 1부터 첫 번째 자연수까지 각 수를 문자 원소로 가진 리스트를 생성한다. li = list(str(i) for i in range(1, N + 1))
  5. 중복 조합의 결과를 구해주는 product() 함수를 사용해 위에서 생성한 리스트에서 두 번째 자연수만큼 원소를 뽑아 가능한 모든 경우를 리스트로 저장한다. result = list(product(li, repeat = M))
  6. 가능한 모든 경우를 하나씩 불러와 for i in result
  7. 해당 조합을 공백을 기준으로 한 문자열로 연결해 출력한다. print(' '.join(i))
반응형

3. 소스코드

import sys
from itertools import product

N, M = map(int, sys.stdin.readline().split())

li = list(str(i) for i in range(1, N + 1))
result = list(product(li, repeat = M))
for i in result:
    print(' '.join(i))
728x90
반응형