-
[jungol]주사위던지기1알고리즘문제풀이 2021. 10. 16. 12:21
--문제--
https://jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=449&sca=2080
JUNGOL
www.jungol.co.kr
--문제풀이--
문제는 중복조합, 순열을 구현할 수 있는가를 물어보는 문제입니다.
--코드--
package Jungol; import java.util.Arrays; import java.util.Scanner; public class 주사위던지기1 { static int N,M; static int[] num; static boolean[] check; static int[] number= {1,2,3,4,5,6}; public static void main(String[] args) { Scanner sc=new Scanner(System.in); N=sc.nextInt(); M=sc.nextInt(); num=new int[N]; check=new boolean[7]; switch(M) { case 1: dice1(0); break; case 2: dice2(0,1); break; case 3: dice3(0); break; default : break; } } private static void dice3(int level) { if(level==N) { for(int i=0;i<N;i++) { System.out.print(num[i]+" "); } System.out.println(); return; } for(int i=1;i<=6;i++) { if(!check[i]) { num[level]=i; check[i]=true; dice3(level+1); check[i]=false; } } } private static void dice2(int level, int start) { if(level==N) { for(int i=0;i<N;i++) { System.out.print(num[i]+" "); } System.out.println(); return; } for(int i=start;i<=6;i++) { num[level]=i; dice2(level+1,i); } } private static void dice1(int level) { if(level==N) { for(int i=0;i<N;i++) { System.out.print(num[i]+" "); } System.out.println(); return; } for(int i=1;i<=6;i++) { num[level]=i; dice1(level+1); } } }
'알고리즘문제풀이' 카테고리의 다른 글
[BOJ]2609_최대공약수와 최소공배수_Java (0) 2021.05.19