https://www.acmicpc.net/problem/1759
l, c = map(int, input().split())
arr = list(map(str, input().split()))
arr.sort()
choose = []
check = ['a', 'e', 'i', 'o', 'u']
def combination(index, level):
if level == l:
cnt, cnt2 = 0, 0
for ch in choose:
if ch in check:
cnt += 1
else:
cnt2 += 1
if cnt >= 1 and cnt2 >= 2:
print(''.join(choose))
return
for i in range(index, c):
choose.append(arr[i])
combination(i + 1, level + 1)
choose.pop()
combination(0, 0)
์๊ฐ
์ต์ ํ ๊ฐ์ ๋ชจ์ + ์ต์ ๋ ๊ฐ์ ์์, ์ฌ์ ์์ผ๋ก ๋์ดํด์ผ ํ๋ ์กฐํฉ ๋ฌธ์
1. ๋ฌธ์์ด์ ๋ฆฌ์คํธ ํ์์ผ๋ก ๋ฐ๊พผ ํ ์ ๋ ฌํด์ค๋ค.
2. check ๋ฐฐ์ด์ ๋ชจ์์ ๋ด์์ค๋ค.
3. ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ์ฌ ์กฐํฉ ํจ์๋ฅผ ๋ง๋ค์ด์ค๋ค.
4. ๋ชจ์์ธ ๋ฌธ์๋ cnt + 1, ๋ชจ์์ด ์๋๋ฉด ์์์ด๋ฏ๋ก cnt2 + 1์ ํด์ค๋ค.
5. ์ต์ ํ ๊ฐ์ ๋ชจ์(cnt >= 1) + ์ต์ ๋ ๊ฐ์ ์์(cnt2 >= 2)์ ํด๋นํ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํด์ค๋ค.