본문 바로가기
알고리즘/백트래킹

[백준][Python] 1759번 암호 만들기

by 임짠짠 2022. 12. 2.
반응형
 

1759번: 암호 만들기

첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다.

www.acmicpc.net

 

코드

def back(cnt,ind):
	if cnt == l:
		vo,co = 0,0
		for i in word:
			if i in vowel:
				vo+=1
			else:
				co+=1
		if vo >= 1 and co >= 2:
			print("".join(word))
		return
	for i in range(ind,c):
		if visit[i] == 0:
			word.append(alpha[i])
			visit[i] = 1
			back(cnt+1,i+1)
			visit[i] = 0
			word.pop()


l,c = map(int,input().split())
alpha = list(input().split())
alpha.sort()
vowel = ['a','e','i','o','u']
visit = [0 for _ in range(c)]
word = []
back(0,0)

 

반응형

댓글