-
[BOJ] #14503 _ 로봇 청소기Problem Solving/BOJ 2019. 8. 28. 21:28
[로봇 청소기] https://www.acmicpc.net/problem/14503
시뮬레이션 문제이다.
주어진 조건대로 구현하면 된다.
[ 소스 코드 ]
#include <cstdio> #include <algorithm> #define MAX 100 using namespace std; int dx[] = { 0, 1, 0, -1 }, dy[] = { -1, 0, 1, 0 }; int map[MAX][MAX]; int N, M, r, c, d; int solve(); int main() { scanf("%d %d", &N, &M); scanf("%d %d %d", &r, &c, &d); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) scanf("%d", &map[i][j]); } printf("%d\n", solve()); return 0; } int solve() { int i, tmp_r, tmp_c, clean = 0; while (1) { if (map[r][c] == 0) { map[r][c] = 2; clean++; } for (i = 0; i < 4; i++) { if (d == 0) d = 3; else d -= 1; tmp_r = r + dy[d]; tmp_c = c + dx[d]; if (map[tmp_r][tmp_c] == 0) { r = tmp_r; c = tmp_c; break; } } if (i >= 4) { //go to back r += (dy[d] * -1); c += (dx[d] * -1); if (map[r][c] == 1) break; } } return clean; }
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ] #14891 _ 톱니바퀴 (0) 2019.08.28 [BOJ] #14888 _ 연산자 끼워넣기 (0) 2019.08.28 [BOJ] #14501 _ 퇴사 (0) 2019.08.28 [BOJ] #14499 _ 주사위 굴리기 (0) 2019.08.28 [BOJ] #2644 _ 촌수계산 (0) 2019.08.28 댓글