본문 바로가기

백트래킹3

[백준] 1759 암호 만들기 python3 문제 : https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**8) # 10^8 까지 늘림. input = sys.stdin.readline def is_correct_password(password): vowel = 0 consonant = 0 for p in password: if p in 'aeiou': vowel += 1 else: consonant += 1 if vowel >.. 2020. 3. 18.
[백준] 6603 로또 python3 문제 : https://www.acmicpc.net/problem/6603 6603번: 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2 www.acmicpc.net 코드 from sys import stdin input = stdin.readline def backtracking(idx, S, .. 2020. 3. 14.
[백준] 15649 N과 M python3 문제 : https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 코드 N, M = map(int, input().split(" ")) check = [False] * (N+1) result = [0] * M def backtracking(idx): # 다 채우면 if idx == M: # 출력하고 return print(" ".join(map(str, result))) return for i in range(1, N+1): if check[.. 2020. 3. 14.