새로운 블로그로 이전 작업을 진행하고 있어 포스트가 새로 작성되고 있지 않습니다.

빠른 시일 내에 새로운 블로그로 인사드리겠습니다.

새로운 블로그 : https://unho.vercel.app/

본문 바로가기
알고리즘 문제풀이/Python

[백준] 15649 N과 M (1)

by 언호 2022. 1. 14.

📖 문제


🧑🏻‍💻 풀이 과정

1) 문제 이해 및 접근

수열을 구해야하기 때문에 재귀를 이용하여 풀었습니다.

2) 알고리즘

  • 재귀

3) 풀이 코드

사용 언어 - Python

import sys
sys.stdin = open('input.txt')

def solution(n, ans):
    if n <= 0:          # 원하는 개수를 모두 구한 경우
        print(*ans)
        return
    
    for i in range(1, N+1):             # 숫자 돌아가면서 확인
        if not selected[i]:             # 숫자가 사용되었는지 확인
            selected[i] = 1             # 숫자 사용 체크
            solution(n-1, ans + [i])    # 다음 재귀 호출
            selected[i] = 0


N, M = map(int, sys.stdin.readline().split())   # 자연수 숫자, 뽑아내는 수열의 개수

selected = [0] * (N+1)          # 숫자가 선택됬는지 확인 여부

solution(M, [])                 # 재귀

📝 결과 및 학습한 내용

1) 어려웠던 내용

특별히 없습니다.

2) 새롭게 학습한 내용

특별히 없습니다.


🔗 문제 링크

- https://www.acmicpc.net/problem/15649

 

15649번: N과 M (1)

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

www.acmicpc.net

 

 

※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다

'알고리즘 문제풀이 > Python' 카테고리의 다른 글

[프로그래머스] 타겟넘버  (0) 2022.01.16
[백준] 6443 애너그램  (0) 2022.01.15
[백준] 1275 커피숍2  (0) 2022.01.13
[백준] 11505 구간 곱 구하기  (0) 2022.01.12
[백준] 14502 연구소  (0) 2022.01.11

댓글