DFS10 [python] 타겟 넘버 문제 출처 타겟 넘버 풀이 풀이 1 def dfs(idx, numbers, result, target): global answer if idx == len(numbers): if result == target: answer += 1 return dfs(idx+1, numbers, result+numbers[idx], target) dfs(idx+1,numbers, result-numbers[idx], target) answer = 0 def solution(numbers, target): dfs(0, numbers, 0, target) return answer 풀이 2 def solution(numbers, target): if not numbers: if target: return 0 return 1 .. 2019. 9. 1. [python] 13023. ABCDE 문제 출처 13023. ABCDE 풀이 N, M = map(int, input().split()) relation = [[] for _ in range(N)] visited = [False for _ in range(N)] for _ in range(M): a, b = map(int, input().split()) relation[a].append(b) relation[b].append(a) def dfs(cnt, nxt): global flag visited[nxt] = True if cnt == 4: flag = True return for i in relation[nxt]: if not visited[i]: dfs(cnt+1, i) visited[i] = False flag = False for r.. 2019. 8. 19. [python] 14500. 테트로미노 문제 출처 14500. 테트로미노 풀이 N, M = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] def others(x, y, visited, sum_): global max_ if len(visited) == 4: max_ = max(max_, sum_) return for dx, dy in (1, 0), (0, 1), (-1, 0), (0, -1): nx, ny = x+dx, y+dy if nx = M or ny = N: continue if (nx, ny) in visited: continue others(nx, ny, visited+[(nx, ny)], .. 2019. 8. 4. [python] 14888. 연산자 끼워넣기 문제 출처 14888. 연산자 끼워넣기 풀이 이 문제는 최솟값과 최댓값을 모두 출력해야 하므로 가능한 모든 경우를 다 계산해 봐야 한다. 최악의 경우는 10! / (4!4!3!) 로 주어진 시간안에 충분히 해결 가능하다. N = int(input()) nums = list(map(int, input().split())) add, sub, mul, div = map(int, input().split()) min_, max_ = 1e9, -1e9 def dfs(i, res, add, sub, mul, div): global max_, min_ if i == N: max_ = max(res, max_) min_ = min(res, min_) return else: if add: dfs(i+1, res+nums.. 2019. 7. 24. 이전 1 2 3 다음