알고리즘

[백준] N과 M (4) [자바/Java]

irerin07 2020. 7. 19. 16:42
728x90

문제: https://www.acmicpc.net/problem/15652

코드: https://github.com/irerin07/AlgorithmStudyBaek/blob/master/src/baekjoon/baekjoon15652.java

 

 

package baekjoon;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class baekjoon15652 {
  static int N;
  static int M;
  static int[] result;
  static StringBuilder sb;

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    StringTokenizer st = new StringTokenizer(br.readLine());
    N = Integer.parseInt(st.nextToken());
    M = Integer.parseInt(st.nextToken());
    result = new int[N];
    sb = new StringBuilder();

    nextPermitation(0);
    bw.write(sb.toString());

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

  }

  static void nextPermitation(int apply) {
    if(apply == M) {
      for(int i = 0; i < M; i++) {
        sb.append(result[i]+" ");
      }
      sb.append("\n");
    }else {
      for(int i = 1; i <= N; i++) {
        if (apply != 0 && result[apply-1] > i) {
          continue;
        }
        result[apply] = i;
        nextPermitation(apply+1);
      }
    }
  }

}

 

 

 

 

 

728x90