연권
달콘박스
연권
전체 방문자
오늘
어제
  • 전체 (308)
    • Web (22)
      • JavaScript (8)
      • TypeScript (2)
      • Node.js (8)
      • HTML (0)
      • CSS (0)
      • Network (1)
      • Browser (0)
      • Patterns (3)
    • Framwork (4)
      • Vue.js (3)
      • Electron (1)
    • Infra&DevOps (1)
    • Algorithm (246)
    • Database (16)
    • Review (15)
    • Test (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백준ㅇ
  • java
  • 동적계획법
  • 문자열
  • 재귀
  • javascript
  • 정렬
  • DP
  • 알고리즘
  • typescript
  • 코딩테스트 연습
  • 진수
  • MySQL
  • 스택
  • BFS
  • 진법
  • sql
  • 백준
  • 프로그래머스
  • 백트레킹

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
연권

달콘박스

백준 15654번 N과 M (5) [ Java ]
Algorithm

백준 15654번 N과 M (5) [ Java ]

2020. 12. 23. 16:50
반응형
 

15654번: N과 M (5)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net

백트레킹 연습을 위한 N과 M 시리즈!

import java.util.*;

public class Main {
    static int N, M;
    static int[] num;
    static int[] print;
    static boolean[] visited;
    static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        M = sc.nextInt();
        num = new int[N];
        visited = new boolean[N];
        print = new int[M];
        for (int i=0; i<N; i++) num[i] = sc.nextInt();
        Arrays.sort(num);
        bt(0, 0);
        System.out.print(sb);
    }
    static void bt(int depth, int start){
        if (depth == M){
            for (int i : print)
                sb.append(i+" ");
            sb.append("\n");
            return;
        }
        for (int i=0; i<N; i++){
            if (!visited[i]) {
                visited[i] = true;
                print[depth] = num[i];
                bt(depth + 1, i + 1);
                visited[i] = false;
            }
        }
    }
}

반응형
저작자표시 동일조건 (새창열림)

'Algorithm' 카테고리의 다른 글

백준 15656번 N과 M (7) [ Java ]  (0) 2020.12.23
백준 15655번 N과 M (6) [ Java ]  (0) 2020.12.23
백준 1267번 핸드폰 요금 [ Java ]  (0) 2020.12.23
백준 10804번 카드 역배치 [ Java ]  (0) 2020.12.23
백준 2445번 별 찍기 - 8 [ Java ]  (0) 2020.12.22
    'Algorithm' 카테고리의 다른 글
    • 백준 15656번 N과 M (7) [ Java ]
    • 백준 15655번 N과 M (6) [ Java ]
    • 백준 1267번 핸드폰 요금 [ Java ]
    • 백준 10804번 카드 역배치 [ Java ]
    연권
    연권

    티스토리툴바