문제풀이/완전탐색

https://www.acmicpc.net/problem/17968문제 해석문제가 영어로 되어 있어서 정리를 좀 해봤다. 배열 A는 다음과 같은 규칙을 만족하는 수열이다.A[0]=1, A[1]=1이다.어떤 k(k > 0)가 i - 2k ≥ 0이라는 조건을 만족시킬 때, A[i-2k], A[i-k], A[i]로 이루어진 부분수열은 등차수열이 되지 않는다. 즉, A[i]-A[i-k] ≠ A[i-k] - A[i-2k]이다.예를 들어, A[2]는 1이 될 수 없다. 왜냐하면, A[0]=1, A[1]=1이기 때문에 A[2]가 1이면 A[0], A[1], A[2]는 공차가 0인 등차수열이 되기 때문이다. 그렇기에 A[2]는 A[0], A[1], A[2] 부분수열이 등차수열이 되지 않게 하면서도 가장 작은 양의 정수..
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AY6ci8cKecUDFAXt&categoryId=AY6ci8cKecUDFAXt&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 코드def gcd(a, b): # a와 b의 최소공배수 구하기 if b == 0: return a return gcd(b, a % b)for tc in range(1, int(input())+1): n = int(input()) board = [input()..
https://www.acmicpc.net/problem/21943 코드from itertools import combinationsn = int(input())x = list(map(int, input().split()))plus, mul = map(int, input().split())ans = 0def dfs(picked_cnt, remain_x, total): global ans if picked_cnt == 1: # 마지막 덩어리 ans = max(ans, total*sum(remain_x)) return # 하나의 덩어리 고르기 for i in range(1, len(remain_x)-picked_cnt+2): for comb in ..
https://www.acmicpc.net/problem/1254 코드s = input()def is_palindrome(string): for i in range(len(string)//2): if string[i] != string[len(string)-1-i]: return False return Truefor i in range(len(s)): new_s = s+(s[:i])[::-1] if is_palindrome(new_s): print(len(new_s)) break 주어진 문자열 S의 앞에서부터 1글자, 2글자,... 이렇게 떼어서 거꾸로 S 뒤에 붙여보며 팰린드롬인지 확인한다.
https://www.acmicpc.net/problem/14889 코드from itertools import combinationsn = int(input())ability = [list(map(int, input().split())) for _ in range(n)]ans = int(1e9)for start in combinations(range(n), n//2): start = set(start) link = set(range(n))-start # 스타트팀 능력치 start_ability = 0 for comb in combinations(list(start), 2): start_ability += (ability[comb[0]][comb[1]]+ability..
딜레이레이
'문제풀이/완전탐색' 카테고리의 글 목록