Algorithm-Problems/백준

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

프리랜서를꿈꾸는자 2022. 2. 9. 00:18
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