'알고리즘 모음집' 카테고리의 글 목록 (12 Page)
본문 바로가기
728x90
반응형

알고리즘 모음집307

22-04-12-14889-스타트와링크 01.DFS로 팀나누기 void dfs(int idx,int cnt) { if (N / 2 == cnt) { vectorstart; vectorlink; for (int i = 0; i < N; i++) { if (D[i] == 1) start.push_back(i); else if (D[i] == 0)link.push_back(i); } int sumStart = 0; int sumLink = 0; for (int i = 0; i < start.size(); i++) { for (int j = 0; j < start.size(); j++) { if (start[i] == start[j]) continue; sumStart += board[start[i]][start[j]]; } } for (int i .. 2022. 4. 12.
22-04-11-14888-연산자끼워넣기 01.dfs를 이용한 계산 void dfs(int idx, int plus, int minus, int multiple, int divide, int sum) { if (idx == sumNumber) { minNumber = minNumber > sum ? sum : minNumber; maxNumber = maxNumber < sum ? sum : maxNumber; return; } if (plus) dfs(idx + 1, plus - 1, minus, multiple, divide, sum + number[idx+1]); if (minus) dfs(idx + 1, plus, minus-1, multiple, divide, sum - number[idx + 1]); if (multiple) dfs(.. 2022. 4. 12.
22-04-11-14503-로봇청소기 01.청소방향 확인하는 소스 int idx = 0; int y = robot.y, x = robot.x; int dir = robot.dir; for (idx = 0; idx < 4; idx++) { dir--; if (dir == -1) dir = 3; pos next; next.y = y + dy[dir]; next.x = x + dx[dir]; if (board[next.y][next.x] == 0) { // 청소 공간이 있는경우 회전후 전진 robot.y = next.y; robot.x = next.x; robot.dir = dir; break; } } 02.청소구간이 없는 경우 후진 또는 종료 if (idx == 4)// 청소구간이 없는 경우 후진 또는 종료 { pos prev; prev.y =.. 2022. 4. 11.
22-04-09-14502-연구소 01.재귀를 이용하여 3개의 벽 세우기 void installWall(int y, int x, int count) { if (count == 3) { int safeZone = bfs(); ret = ret < safeZone ? safeZone : ret; return; } for (int i = y; i < N; i++) { for (int j = x; j < M; j++) { if (board[i][j] == 0) { board[i][j] = 3;//벽세우기 installWall(i, j + 1, count + 1); board[i][j] = 0; } } x = 0; } } 02.바이러스 BFS증식 queueq; int safeZone = 0; for (int i = 0; i < N; i++) { .. 2022. 4. 10.
728x90
반응형