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

알고리즘250

2022-04-23-17140-이차원배열과연산 01.R연산 void R_cal() { for (int i = 0; i < R; i++) { Data D[101] = { 0, }; vectorDD; for (int j = 0; j < C; j++) { if (A[i][j] != 0) { D[A[i][j]].number = A[i][j]; D[A[i][j]].count++; A[i][j] = 0; } } for (int j = 0; j 2022. 4. 23.
2022-04-23-17141-연구소2,17142연구소3 01.[공통] dfs - 바이러스 선택 void dfs(int idx, int cnt) { if (idx > virus.size())return; if (cnt == M) { BFS(); return; } D.push_back(idx); dfs(idx+1, cnt + 1); D.pop_back(); dfs(idx + 1, cnt); } 02. [공통] bfs - 바이러스 확산 queueq; int visit[NS][NS] = { 0, }; for (int i = 0; i < M; i++) { q.push(virus[D[i]]); visit[virus[D[i]].y][virus[D[i]].x] = 1; } while (!q.empty()) { Data c = q.front(); q.pop(); for (i.. 2022. 4. 23.
2022-04-22-17144-미세먼지안녕 01.미세먼지 확산 void spreadDust() { int cBoard[NS][MS] = { 0, }; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { int spaceCount = 0; if (board[i][j] != -1 && board[i][j] != 0) {//공기청정기 위치 아니고 먼지인경우만 체크 int spreadDust = board[i][j] / 5; for (int dir = 0; dir < 4; dir++) { int ny = i + dy1[dir]; int nx = j + dx1[dir]; if (safeZone(ny, nx)) { spaceCount++; cBoard[ny][nx] += spreadDust; } } i.. 2022. 4. 22.
22-04-24-16236-아기상어 01.거리최소값구하기 조건은 최소의 거리이고 최소가 많은 경우 y가 최소이고 y가최소인게 많으면 x가 최소인 것 if (board[c.y][c.x]!=0&&board[c.y][c.x]= c.eat) {//최소값 minCnt = c.eat; if (minY > c.y || (minY == c.y&&minX > c.x)) { minY = c.y; minX = c.x; } } 02.BFS 모든 경우를 확인 대신 최소를 저장하면서 확인 진행 최소의 모든 경우를 보는 이유는 최소가 여러개이기 때문 while (!s.empty()) { Data c = s.front(); s.pop(); if (board[c.y][c.x]!=0&&board[c.y][c.x]= c.eat) {//최소값 minCnt = c.eat; i.. 2022. 4. 21.
728x90
반응형