728x90
1759 암호 만들기
- 문제
- 해설
-
import sys target_length, C = [int(x) for x in sys.stdin.readline().split()] available_alphabets = sorted(sys.stdin.readline().split()) def is_available(test_password): total_jaum = set('aeiou') if len(total_jaum & set(test_password)) >= 1 and len(set(test_password) - total_jaum) >= 2: return True else: return False def recursive_finder(test_password): # 불가능한 경우 if len(test_password) > target_length: return None # 정답인 경우 if len(test_password) == target_length and is_available(test_password): print(test_password) # 계속 호출인 경우 if len(test_password) == 0: for i in available_alphabets: recursive_finder(test_password + i) if 0 < len(test_password) < target_length: for i in available_alphabets[1 + available_alphabets.index(test_password[-1]):]: recursive_finder(test_password + i) recursive_finder('')
-
- 포인트
- Bruteforce
- Recursive function
728x90
'Algorithm-Problems > 백준' 카테고리의 다른 글
[백준][1934] 최소공배수 (0) | 2022.05.08 |
---|---|
[백준][1929] 소수 구하기 (0) | 2022.05.05 |
[백준][1707] 이분 그래프 (0) | 2022.02.09 |
[백준][1697] 숨바꼭질 (0) | 2022.02.06 |
[백준][1476] 날짜 계산 (0) | 2022.02.06 |