'알고리즘' 태그의 글 목록 (6 Page)
본문 바로가기
728x90
반응형

알고리즘250

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-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.
22-04-04-3190-뱀 01.필요알고리즘 01.1 뱀의 머리와 꼬리 구분 tail = ret - size; 01.2 뱀이 방향을 이동하는 시기 if (ret == X) { if (C == 'D') { dir++; if (dir == 4)dir = 0; } else { dir--; if (dir == -1)dir = 3; } if (l != L - 1)break; } 01.3 뱀이 종료되는 시점 if (!(1 2022. 4. 4.
728x90
반응형