백준 7

[백준 18808 번] 스티커 붙이기 C++

난이도: 골드 3 알고리즘 : 시뮬레이션 배열을 90도씩 회전하는 부분에 구현을 어떻게 해야할지 감이 잡히지 않아서 조금 해맸다. #include #include using namespace std; int n, m, k; int r, c; int pan[41][41] = { 0, }; int sticker[11][11] = { 0, }; void findSpace(int L); void patchSpace(int st_x, int st_y); void rotation(int L); void input() { cin >> n >> m >> k; for (int i = 0; i > r >> c; memset(sticker, 0, sizeof(sticker) / sizeof(i..

알고리즘 2023.12.25

[백준 15683번] 감시 C++

0. 과정 난이도 : 골드 4 풀이 방법 : DFS + BackTracking 해설: 기존에는 backtracking을 위해서 move에서 이동했던 것 만큼 다시 되돌려주었는데 6 6 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 5 0 0 0 0 5 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 답 : 2 다음 input값에서 무한루프가 돌았다. 따라서 다른 사람들의 풀이를 참고하니 굳이 moveBackTracking()를 통해 되돌려주는 대신 tmp 배열을 이용해 기존 방문했던 visited 배열을 저장했다가 다시 되돌려주는 방식을 이용하였다. 1. 첫 번째 풀이 #include #include #include using namespace std; int n, m; int pan[9][..

알고리즘 2023.12.18

백준[15663번] N과 M(9)

bool visited[10] : 자신과 중복되는 값을 제거하기 위해 사용 int xx : 중복순열을 제거하기 위해 이전에 입력한 값을 저장하고, 현재 받으려는 값과 비교하여 값이 같으면 중복 수열이므로 넘어가준다. #include #include #include using namespace std; int n, m; vector v; int res[10]; bool visited[10]; void dfs(int cnt) { if (cnt == m) { for (int i = 0; i m; int x; for (int i = 0; i > x; v.push_back(x); } sort(v.begin(), v.end()); dfs(0); ret..

알고리즘 2023.10.31