[programmers] Lv.2 타겟 넘버(c++)
DFS, BFS 두 방법으로 풀어봤다. 더보기 #include using namespace std; int answer=0; void dfs(vector& numbers, int& target, int idx, int num){ if(idx+1 == numbers.size()+1){ if(num == target) answer++; return; } dfs(numbers, target, idx+1, num+(-1)*numbers[idx]); dfs(numbers, target, idx+1, num+numbers[idx]); } void bfs(vector& numbers, int& target){ queue que; que.push({numbers[0], 1}); que.push({(-1)*numbers..
2022. 5. 24.
[programmers] Lv.3 경주로 건설(c++)
더보기 #include #include #include #include using namespace std; struct Node{ int x, y; int cost; int dir; Node(int x=0, int y=0, int cost=0, int dir=4) : x{x}, y{y}, cost{cost}, dir{dir}{} }; int solution(vector board) { vector x_dir = {-1, 1, 0, 0}; vector y_dir = {0, 0, -1, 1}; vector possible_dir = {{0, 2, 3}, {1, 2, 3}, {0, 1, 2}, {0, 1, 3}, {1, 3}}; int N = board.size(); vector dp(N, vector(N,..
2022. 5. 3.