[백준] 15650번 : N과 M (2) (🥈실버 2) (Python)

2023. 2. 22. 00:32·◼ PS Note/백준
목차
  1. 문제 바로 가기
  2. 풀이
반응형

문제 바로 가기

 

15650번: N과 M (2)

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

www.acmicpc.net

 


풀이

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-02-10
 
n, m = tuple(map(int, input().split()))
lst = []


def print_lst():
    for elem in lst:
        print(elem, end=" ")
    print()

def choose(curr_num):
    if curr_num == m + 1:
        print_lst()

    for i in range(1, n + 1):
        if len(lst) >= 1 and lst[-1] >= i:
            continue

        lst.append(i)
        choose(curr_num + 1)
        lst.pop()


choose(1)

 

풀이 로직

  • 재귀 함수를 이용하는 Backtracking 방법으로 문제를 해결하였다.
  • 우선 숫자를 한 개 뽑고 이를 리스트에 삽입한 후 같은 함수를 m개의 숫자를 뽑을 때까지 반복 호출한다.
    • 재귀 함수 호출 이후엔 pop 메소드를 통해 리스트를 원래대로 복귀시켜 놓아야 한다.
  • 오름차순으로 수를 뽑아야 하므로, 바로 이전에 뽑았던 수보다 같거나 작은 수를 뽑는 과정은 continue문을 통해 생략한다.

 

문제 접근 과정 및 느낀점

  • Backtracking 유형의 대표 문제
  • 재밌다.

 

반응형

'◼ PS Note > 백준' 카테고리의 다른 글

[백준] 1107번 : 리모컨 (🥇골드 5) (Python)  (2) 2024.01.10
[백준] 7576번 : 토마토 (🥇골드 5) (Python)  (0) 2023.02.22
[백준] 1929번 : 소수 구하기 (🥈실버 3) (Python)  (0) 2023.02.22
[백준] 1063번 : 킹 (🥈실버 4) (Python)  (0) 2023.01.22
[백준] 1929번 : 소수 구하기 (🥈실버 3)  (0) 2023.01.22
  1. 문제 바로 가기
  2. 풀이
'◼ PS Note/백준' 카테고리의 다른 글
  • [백준] 1107번 : 리모컨 (🥇골드 5) (Python)
  • [백준] 7576번 : 토마토 (🥇골드 5) (Python)
  • [백준] 1929번 : 소수 구하기 (🥈실버 3) (Python)
  • [백준] 1063번 : 킹 (🥈실버 4) (Python)
SangYoonLee (SYL)
SangYoonLee (SYL)
Slow, But Steady Wins The Race 😎
    반응형
  • SangYoonLee (SYL)
    ◆ Slow, But Steady ◆
    SangYoonLee (SYL)
  • 전체
    오늘
    어제
    • ◻ 전체 글 수 : (133)
      • ✪ 취미, 경험 회고 및 일상 (26)
        • [취미] Room Escape (2)
        • [회고] IT 관련 경험 회고 (18)
        • [일상] 일상 생각 (4)
        • [일상] 독후감 (1)
      • ◼ FrontEnd (31)
        • Web & HTML, CSS (10)
        • JavaScript (4)
        • TypeScript (1)
        • ReactJS (16)
      • ◼ CS (3)
        • 자료구조 & 알고리즘 (1)
        • 컴퓨터 구조 (1)
        • 운영체제 (1)
      • ◼ PS Note (40)
        • 백준 (38)
        • 프로그래머스 (2)
      • ◼ IT Etc. (33)
        • (Until 2021) (21)
        • Python (6)
        • C | C# | C++ (1)
        • Git (1)
        • Unity (4)
        • Game Dev. (0)
  • 블로그 메뉴

    • 홈
    • 💻 GitHub
    • 🟢 Velog
    • 🧩 온라인 방탈출 출시 작품 모음
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    unity
    후기
    Component
    Python
    코딩 일기
    위코드
    CodeSoom
    알고리즘
    JavaScript
    백준
    소수 구하기
    주간 회고
    코드숨
    1929
    pygame
    wecode
    유니티
    프로젝트
    더라비린스
    개인 프로젝트
    C++
    React
    회고
    파이썬
    관심사의 분리
    방탈출고사
    리엑트
    프로그래머스
    미궁 게임
    Cpp
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
SangYoonLee (SYL)
[백준] 15650번 : N과 M (2) (🥈실버 2) (Python)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.