[BOJ] 15652번 N과M(4) - JAVA

최영환·2023년 2월 5일
0

BaekJoon

목록 보기
33/87
post-thumbnail

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

import java.util.Scanner;

public class Main {
	static int n;
	static int m;
	static int[] arr;
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();
		m = sc.nextInt();
		arr = new int[m];
		permutation(0);
	}
	
	static void permutation(int count) {
		if (count == m) {
			if(isValid()) {
				for (int i = 0; i < m; i++) {
					System.out.print(arr[i] + " ");
				}
				System.out.println();
			}
			return;
		}
		for (int i = 1; i <= n; i++) {
			arr[count] = i;
			permutation(count+1);
		}
	}
	
	static boolean isValid() {
		for (int i = 0; i < m-1; i++) {
			if (arr[i] > arr[i+1]) {
				return false;
			}
		}
		return true;
	}
}

📄 해설

  • 중복 순열을 이용하면 쉽게 해결이 가능한 문제
  • 비내림차순이어야 한다는 문제의 조건 만족을 위해 종료 조건에서 비내림차순 여부 확인 메소드를 호출한다.
profile
조금 느릴게요~

0개의 댓글