From 35146c54662c5bc1ac4cc5a700e43ef974fbfaea Mon Sep 17 00:00:00 2001 From: eunji Date: Wed, 1 Feb 2023 21:02:09 +0900 Subject: [PATCH] =?UTF-8?q?Week04=20BOJ=201759=20=EC=95=94=ED=98=B8=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eunji8784/week02/.gitkeep | 0 eunji8784/week04/BOJ_1759.java | 64 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) delete mode 100644 eunji8784/week02/.gitkeep create mode 100644 eunji8784/week04/BOJ_1759.java diff --git a/eunji8784/week02/.gitkeep b/eunji8784/week02/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/eunji8784/week04/BOJ_1759.java b/eunji8784/week04/BOJ_1759.java new file mode 100644 index 0000000..3283eb4 --- /dev/null +++ b/eunji8784/week04/BOJ_1759.java @@ -0,0 +1,64 @@ +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.Arrays; +import java.util.StringTokenizer; + +public class Main_1759 { + + static int L, C, cnt; + static char[] arr, selected; + static char lst[] = {'a', 'e', 'i', 'o', 'u'}; + + public static void main(String[] args) throws IOException { + + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine(), " "); + L = Integer.parseInt(st.nextToken()); + C = Integer.parseInt(st.nextToken()); + selected = new char[L]; + arr = new char[C]; + st = new StringTokenizer(br.readLine(), " "); + for (int i = 0; i < C; i++) { + arr[i] = st.nextToken().charAt(0); + } + Arrays.sort(arr); + cnt = 0; + Com(0, 0, 0); + + } + + private static void Com(int index, int count, int cnt) { + + boolean flag = false; + + if (count == L) { + if (cnt < 1 || L - cnt < 2 ) { + return; + } + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < L; i++) { + sb.append(selected[i]); + } + System.out.println(sb.toString()); + return; + } + + for (int i = index; i < C; i++) { + selected[count] = arr[i]; + for (char tmp : lst) { + if (selected[count] == tmp) { + flag = true; + cnt++; + } + } + Com(i + 1, count + 1, cnt); + if (flag) { + cnt--; + flag = false; + } + } + + } + +}