N and M (3)

문학적인유사성·2022년 2월 20일
0

language

목록 보기
5/24

이제 dfs같은 것에 많이 익숙해진 것같다.
시간초과가 났을때, StringBuilder로 바꾸는 것으로 시간 초과를 바로 해결했다. 이제 조금씩 기억이 나는 듯...!
가즈아ㅏㅏ

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

class Main {

  private static int[] arr;
  private static StringBuilder sb;

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

    sb = new StringBuilder();

    String[] str = br.readLine().split(" ");

    int N = Integer.parseInt(str[0]);
    int M = Integer.parseInt(str[1]);

    arr = new int[M];

    dfs(0, N, M);

    System.out.println(sb.toString());
  }

  private static void dfs(int step, int N, int M) {
    if (step == M) {
      for (int i = 0; i < M; i++) {
        sb.append(arr[i] + " ");
      }
      sb.append("\n");
      return;
    }

    for (int i = 0; i < N; i++) {
      arr[step] = i + 1;
      dfs(step + 1, N, M);
    }

    return;
  }

}
profile
Are you nervous? Don't be

0개의 댓글