일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- git
- vscode
- Algorithm
- DFS
- DP
- db
- Database
- 그레이들
- LeetCode
- VIM
- 프로그래머스
- network
- Python
- BFS
- Javascript
- 자바
- react
- 백준
- 안드로이드
- CS
- 다이나믹 프로그래밍
- 알고리즘
- 리트코드
- Data Structure
- frontend
- Graph
- Redux
- java
- 동적 계획법
- TypeScript
- Today
- Total
목록백트래킹 (2)
늘 겸손하게

목차 문제명 문제풀이 코드 연산자 끼워넣기 (3) 문제 유형 : DFS, 백트래킹 난이도 : 골드 4 https://www.acmicpc.net/problem/15659 문제 풀이 백트래킹 문제이므로 기저조건으로 N - 1개의 연산자를 모두 썼을때 식을 계산하여 최대, 최소 값을 구한다. 함수를 재귀적으로 호출하는 조건은, 사용가능한 연산자가 남아있을 경우이다. 코드 N = int(input()) A = list(map(int, input().split())) plus, minus, multi, div = map(int, input().split()) max_ans = int(-1e11) min_ans = int(1e11) def rec(string, p, m1, m2, d, cnt): if cnt ==..

백트래킹 문제 한번 선택한 정수는 다시 선택할 수 없으므로 visited 배열을 이용하여 promising 한지 promising 하지 않은지 판별할 수 있습니다. 재귀적으로 깊이 들어가다가 M 개의 수를 선택하면 결과를 출력합니다 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include using namespace std; const int MAX = 9; int N, M; int arr[MAX] = {0,}; bool visited[MAX] = {0,}; void dfs(int cnt) { if (cnt == M ) { for (int i ..