쉬운 문제였지만 디스크립션을 이해하느라 오래 걸렸다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <stdio.h> int r, c, k; bool chk[1001][1001]; int dx[5] = { 0, -1,1,0,0 }; int dy[5] = { 0,0,0,-1,1 }; int gd[4]; int cnt = 0; void f(int x, int y, int i) { chk[x][y] = true; int nx = x + dx[gd[i]]; int ny = y + dy[gd[i]]; if (nx == -1 || nx == r || ny == -1 || ny == c || chk[nx][ny]) { if (cnt == 4) { printf("%d %d\n", x, y); return; } cnt++; f(x, y, (i + 1) % 4); return; } else { cnt = 0; f(nx, ny, i); return; } } int main(void) { scanf("%d %d", &r, &c); scanf("%d", &k); for (int i = 0; i < k; i++) { int a, b; scanf("%d %d", &a, &b); chk[a][b] = true; } int sx, sy; scanf("%d %d", &sx, &sy); for (int i = 0; i < 4; i++) { scanf("%d", &gd[i]); } f(sx, sy, 0); } | cs |
'알고리즘 > PS' 카테고리의 다른 글
[백준 14442] 벽 부수고 이동하기 2 (0) | 2018.07.23 |
---|---|
[백준 14432] 우물 (0) | 2018.06.06 |
[백준 10539] 수빈이와 수열 (0) | 2018.05.27 |
[백준 14671] 영정이의 청소 (0) | 2018.05.26 |
[백준 14670] 병약한 영정 (0) | 2018.05.26 |