반응형

알고리즘 7

[정올 1078] 저글링 방사능 오염

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=358&sca=99 JUNGOL www.jungol.co.kr #include int grid[105][105], R, C, SR, SC, s, e; int dr[4] = { 1, -1, 0, 0 }; int dc[4] = { 0, 0, 1, -1 }; struct P { //BFS를 위한 Queue int r, c, cnt; } Que[50000]; void enq(int r, int c, int cnt) { //방사능 오염된 저글링은 죽는 시간을 cnt로 표시함 Que[e].r = r;Que[e].c = c;Que[e++].cnt = cnt;grid[r][c] = cnt; } P deq() {re..

[정올 1060] 최소비용신장트리

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=340&sca=99 JUNGOL www.jungol.co.kr #include const int MAX = 100100; //G는 idx인 점이 어느 곳과 연결되어 있는지를 알려줌 int N, G[10100], M[103][103]; int ans; int Find(int r) { //자기가 Root면 자기 리턴, 아니면 찾아감 return G[r] = r == G[r] ? r : Find(G[r]); } int main() { int cnt, mini, minj, min = MAX, startGp; scanf("%d", &N); for (int i = 1; i

[정올 1006] 로봇

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=285&sca=99 JUNGOL www.jungol.co.kr 이런 문제처럼 좌표평면에서 상하좌우로 움직이며 조건을 체크하는 경우에는 BFS를 써야 한다. BFS를 이용하여 목적지에 도달하는 최소 이동 횟수는 다음 절차를 따라 구현하면 된다. 1. Queue를 준비한다. Queue에 들어가는 Element는 [현재 위치(r, c), 로봇방향, 현재명령횟수] 로 구성된다. 2. 이전에 방문했던 좌표(r, c)를 재 방문한다면 최소 명령횟수로 목적지에 도달하는 게 아니게 되므로, 더 이상 체크할 필요가 없다. 이전 방문 좌표를 재 방문하지 않도록, 좌표 방문 체크용으로 지도와 동일한 2x2 배열을 만든다..

반응형