(DFS기본틀) [Java] 백준 15654번 - N과 M (5)

2024. 4. 23. 15:01·백준

문제 링크 : https://www.acmicpc.net/problem/15654

 

import java.io.*;
import java.util.*;

public class P15654 {
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    static int N;
    static int M;
    static boolean[] visited;
    static int[] result;
    static int[] array;

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        StringTokenizer st = new StringTokenizer(br.readLine());
        N = Integer.parseInt(st.nextToken());
        M = Integer.parseInt(st.nextToken());
        visited = new boolean[N];
        result = new int[M];

        array = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        // 사전순으로 출력해야 하기때문에 정렬
        Arrays.sort(array);
        dfs(0);


        bw.flush();
        bw.close();
        br.close();
    }

    public static void dfs(int depth) throws IOException {
        if (depth == M) {
            StringBuilder sb = new StringBuilder();
            for (int i : result) {
                sb.append(i).append(" ");
            }
            bw.append(sb).append("\n");
            return;
        }

        for (int i = 0; i < N; i++) {
        // 중복조합이 아니라 visited 사용
            if (!visited[i]) {
                visited[i] = true;
                result[depth] = array[i];
                dfs(depth + 1);
                visited[i] = false;
            }
        }
    }
}

'백준' 카테고리의 다른 글

[Java] 백준 2133번 타일 채우기 - 그림 설명! 이해가 된다고 자부  (0) 2024.05.19
[Java] 백준 26902번 - IP-adresser  (0) 2024.04.23
[Java] 백준 14500번 - 테트로미노  (0) 2024.04.23
[Java] 백준 1107번 - 리모컨  (0) 2024.04.23
[Java] 백준 6588번 - 골드바흐의 추측  (0) 2024.04.23
'백준' 카테고리의 다른 글
  • [Java] 백준 2133번 타일 채우기 - 그림 설명! 이해가 된다고 자부
  • [Java] 백준 26902번 - IP-adresser
  • [Java] 백준 14500번 - 테트로미노
  • [Java] 백준 1107번 - 리모컨
효재감자
효재감자
  • 효재감자
    효재감자의 우당탕탕 개발일지
    효재감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (73)
      • 아무거나 (3)
      • 백준 (44)
      • 알고리즘 (4)
      • 자바 (1)
      • 리눅스(우분투) 및 클라우드 (2)
      • 스프링 (14)
        • 스프링 시큐리티 인 액션 (도서 정리) (5)
      • 플러터(Dart) (0)
  • 블로그 메뉴

    • 홈
    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
효재감자
(DFS기본틀) [Java] 백준 15654번 - N과 M (5)
상단으로

티스토리툴바