개발일지/Algorithm

백준 - 15651 N과 M (3) [백트래킹]

2023. 9. 28. 17:27
목차
  1. 1. 문제 요약
  2. 2. 접근 방법
  3. 3. 파이썬
  4. 4. 자바
  5. 5. 전체 코드
728x90

 

 

15651번: N과 M (3)

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

www.acmicpc.net

 

1. 문제 요약

1부터 N까지의 숫자들 중 M개를 뽑아 수열을 생성하라.

같은 수를 여러 번 골라도 된다.

 

2. 접근 방법

대표적인 방법으로 재귀함수를 이용할 수 있습니다.

 

3. 파이썬

from sys import stdin
input = stdin.readline

def solution(depth: int):
    if depth == M:
        # print(*arr)
        print(' '.join(map(str, arr))) # 위 방식보다 좀 더 효율적입니다.
        return

    for i in range(1, N + 1):
        arr[depth] = i
        solution(depth + 1)

N, M = map(int, input().split())
arr = [0] * M
solution(0)

 

4. 자바

static int N, M;
static int[] arr; // new int[M]
static StringBuilder sb = new StringBuilder();

static void solution(int depth) {
    if (depth == M) {
        for (int i : arr) {
            sb.append(i).append(' ');
        }
        sb.append('\n');
        return;
    }

    for (int i = 1; i <= N; i++) {
        arr[depth] = i;
        solution(depth + 1);
    }
}

 

5. 전체 코드

https://github.com/Ksiyeong/Algorithm/tree/main/%EB%B0%B1%EC%A4%80/Silver/15651.%E2%80%85N%EA%B3%BC%E2%80%85M%E2%80%85%EF%BC%883%EF%BC%89

728x90
저작자표시 비영리 변경금지 (새창열림)

'개발일지 > Algorithm' 카테고리의 다른 글

백준 - 15654 N과 M (5) [순열]  (0) 2023.09.28
백준 - 15652 N과 M (4) [백트래킹]  (2) 2023.09.28
백준 - 15650 N과 M (2) [조합]  (0) 2023.09.27
백준 - 15649 N과 M (1) [순열]  (0) 2023.09.26
백준 자바1위 - 17611 직각다각형 [누적합][이모스]  (0) 2023.09.25
  1. 1. 문제 요약
  2. 2. 접근 방법
  3. 3. 파이썬
  4. 4. 자바
  5. 5. 전체 코드
'개발일지/Algorithm' 카테고리의 다른 글
  • 백준 - 15654 N과 M (5) [순열]
  • 백준 - 15652 N과 M (4) [백트래킹]
  • 백준 - 15650 N과 M (2) [조합]
  • 백준 - 15649 N과 M (1) [순열]
E-room
E-room
나의 성취 기록들
E-room Achievement Logs나의 성취 기록들
E-room
E-room Achievement Logs
E-room
전체
오늘
어제
  • 분류 전체보기
    • 개발일지
      • 돌픽
      • Spring
      • Algorithm
      • Java
      • Node.js
      • Python
      • DataBase
      • 웹개발
      • JavaScript
      • 컴퓨터지식
      • Django
    • 이것저것
    • 피드백 감사히 받겠습니다

블로그 메뉴

  • 태그
  • Github
  • 돌픽-이상형월드컵

인기 글

최근 글

최근 댓글

태그

  • 백준
  • javascript
  • SQL
  • 조합
  • 재귀
  • 다이나믹
  • 생활코딩
  • 자료구조
  • 순열
  • 파이썬
  • Java
  • 백트래킹
  • JPA
  • algorithm
  • 수열
  • 프로그래밍
  • python
  • 탐색
  • dp
  • API
  • Django
  • 알고리즘
  • 자바
  • 완전탐색
  • mysql
  • dfs
  • 스파르타코딩클럽
  • boot
  • search
  • Spring

공지사항

hELLO · Designed By 정상우.
E-room
백준 - 15651 N과 M (3) [백트래킹]
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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