15918번: 랭퍼든 수열쟁이야!! 세 자연수 n, x, y가 주어진다. (2 ≤ n ≤ 12, 1 ≤ x n: ans += 1 return if num == (y-x-1): bt(num+1) return for i in range(2*n-num-1): if not visited[i] and not visited[i..
백트래킹
18430번: 무기 공학 첫째 줄에는 길동이가 가지고 있는 나무 재료의 세로, 가로 크기를 의미하는 두 자연수 N, M이 주어진다. (1 ≤ N, M ≤ 5) 다음 N개의 줄에 걸쳐서, 매 줄마다 나무 재료의 각 위치의 강도를 나타내 www.acmicpc.net 코드 n, m = map(int, input().split()) woods = [list(map(int, input().split())) for _ in range(n)] boomerang = [[(0, -1), (1, 0)], [(0, -1), (-1, 0)], [(-1, 0), (0, 1)], [(0, 1), (1, 0)]] visited = [[False]*m for _ in range(n)] ans = 0 def bt(x, y, total..
2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 코드 백트래킹 h = [int(input()) for _ in range(9)] def bt(idx, picked): if len(picked) == 7: if sum(picked) == 100: print(*sorted(picked)) exit() if idx >= 9: return if len(picked)+(9-idx) >= 7: bt(idx+1, picked+[h[idx]]) bt(idx+1, picked) bt(0, []) 재귀적으로 함수를 호출하여 7개를 뽑는..
15566번: 개구리 1 연못 안에 개구리들이 있을 수 있는 연꽃 N개와, 연꽃 사이를 연결하는 다리 역할의 통나무 M개가 있다. 같은 연꽃 쌍을 연결하는 통나무의 개수는 1개 이하이다. 여기에 N마리의 개구리가 각각 www.acmicpc.net 코드 n, m = map(int, input().split()) # 각 개구리의 음식, 취미, 가족, 철학에 대한 흥미도 frogs = [[]]+[list(map(int, input().split())) for _ in range(n)] # 개구리가 선호하는 연꽃의 번호 frog_prefers = [set()]+[set(map(int, input().split())) for _ in range(n)] # 통나무 통로의 대화 주제 topics = [[-1]*(n+..
20950번: 미술가 미미 미미는 미적 감각이 뛰어난 미술가이다. 미미는 때때로 여러 물감을 섞어 새로운 색의 물감을 만들고는 한다. 어느 날 그림을 그리던 미미는 놀라 자빠질 수밖에 없었다. 미미가 가장 아끼는 곰 www.acmicpc.net 코드 n = int(input()) rgb = [list(map(int, input().split())) for _ in range(n)] gom_r, gom_g, gom_b = map(int, input().split()) ans = int(1e9) def bt(idx, r, g, b, k): global ans if idx >= n: return # 이번 색 넣음 mun_r = r+rgb[idx][0] mun_g = g+rgb[idx][1] mun_b = b+..