본문 바로가기

Problem/시뮬레이션

[C/C++] BOJ 13901 :: 로봇

BOJ 13901 :: 로봇




문제 링크 : https://www.acmicpc.net/problem/13901







진짜.. 돌았나 ㅠㅠ 이렇게 쉬운 문제를.. 3번이나 틀리고 맞았다 ㅋㅅㅋ


나의 정답 비율은 아주 팍팍팍 떨어지고 있균^^!



내가 잘못 생각하고 푼 부분


1) 다음 칸으로 이동하였을 때, 무조건 처음 방향에서 다시 시작했다.


2) 다음 칸으로 이동하였을 때, 무조건 현재 방향의 다음 방향에서 시작했다.


( 1), 2) 다음 칸으로 이동하고 방향 그대로 일직선으로 가도록 해야함.)


3) 나누기 수식을.. 괄호를 안하고 해서 잘못된 결과가 나왔다.


(이건 정말 바보같은 짓..)




문제 좀 제대로 보고!!! 코드도 영혼을 담아서 짜란 말이드어아아아.. 오늘 집중이 잘 안되어서 그런것이라고 생각하겠어!^^!

자기 위안....



정신차리자!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!





나의 코드




Github : https://github.com/j2wooooo/Daliy_Algorithms/blob/master/Daliy_Algorithms/BOJ_13901/BOJ_13901.cpp



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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// 백준알고리즘 13901번 :: 로봇
#include<iostream>
#include<queue>
using namespace std;
 
int R, C, k;
int room[1000][1000];
int visited[1000][1000];
 
int dir[4];
// 1 : 북, 2 : 남, 3 : 서, 4 : 동
int dx[5= { 0-1100 };
int dy[5= { 000-11 };
 
void simulate(int x, int y)
{
    int i = 0;
    int count = 0;
    int mx = 0;
    int my = 0;
 
    while (1)
    {
        if (count == 4) {
            cout << x << ' ' << y;
            return;
        }
 
        mx = x + dx[dir[i]];
        my = y + dy[dir[i]];
 
        if ((mx < 0 || mx >= R || my < 0 || my >= C) || visited[mx][my] || room[mx][my]) {
            i = (i+1) % 4;
            count++;
            continue;
        }
 
        visited[mx][my] = 1;
        x = mx;
        y = my;
        count = 0;
    }
    return;
}
 
int main()
{
    int x = 0, y = 0;
    cin >> R >> C;
    cin >> k;
    
    for (int i = 0; i < k; i++)
    {
        cin >> x >> y;
        room[x][y] = 1;
    }
 
    cin >> x >> y;
    visited[x][y] = 1;
 
    for (int i = 0; i < 4; i++)
        cin >> dir[i];
 
    simulate(x,y);
 
    return 0;
}
cs


'Problem > 시뮬레이션' 카테고리의 다른 글

[SW Expert Academy] 1210. Ladder1  (0) 2019.02.26
[C/C++] BOJ 1331 :: 나이트 투어  (0) 2019.02.08
[C/C++] BOJ 1986 :: 체스  (0) 2019.02.06
[C/C++] BOJ 1063 :: 킹  (0) 2019.01.23
[C/C++] BOJ 1347 :: 미로 만들기  (0) 2019.01.21