가능한 경우의 수를 모두 조사해서 정답을 찾는 방법
[종류]
from itertools import permutations
permutations(arr, n)
주로 O(N!)
, O(2^N)
이다.
import math
from itertools import permutations
def is_prime_num(n):
if n == 1 or n == 0:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
def solution(numbers):
numbers = list(numbers)
answer = 0
perm = []
for i in range(1, len(numbers)+1):
perm += list(permutations(numbers, i))
nums = [int(''.join(i)) for i in perm]
nums = list(set(nums))
for i in nums:
if is_prime_num(i):
answer += 1
return answer
# 내 풀이
import math
def get_divisor(num):
divisors = []
length = int(math.sqrt(num)) + 1
for i in range(1, length):
if num % i == 0:
divisors.append(i)
divisors.append(num//i)
divisors.sort(reverse = True)
return divisors
def solution(brown, yellow):
answer = []
entire = brown + yellow
divisor = get_divisor(entire)
l = len(divisor)
n = l//2
for i in range(n):
if divisor[l-i-1] > 2 and (divisor[i]-2) * (divisor[l-i-1]-2) == yellow:
answer = [divisor[i], divisor[l-i-1]]
return answer
# 예시 풀이
def solution(brown, yellow):
for i in range(1, int(yellow**(1/2))+1):
if yellow % i == 0:
if 2*(i + yellow//i) == brown-4:
return [yellow//i+2, i+2]
from itertools import permutations
arr = [int(input()) for i in range(9)]
for i in list(permutations(arr, 7)):
if sum(list(i)) == 100:
answer = list(i)
answer.sort()
for i in answer:
print(i)
break
import sys
from itertools import combinations
input = sys.stdin.readline
n, s = map(int, input().split())
arr = list(map(int, input().split()))
answer = 0
for i in range(n):
combi = list(combinations(arr, i+1))
for j in combi:
if sum(list(j)) == s:
answer += 1
print(answer)
import sys
input = sys.stdin.readline
n, s = map(int, input().split())
arr = list(map(int, input().split()))
cnt = 0
def subset_sum(idx, sub_sum):
global cnt
if idx >= n:
return
sub_sum += arr[idx]
if sub_sum == s:
cnt += 1
# 현재 arr[idx]를 선택한 경우의 가지
subset_sum(idx+1, sub_sum)
# 현재 arr[idx]를 선택하지 않은 경우의 가지
subset_sum(idx+1, sub_sum - arr[idx])
subset_sum(0, 0)
print(cnt)
[그 외 백준 추천 문제들]