ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Turtle
    공부/프로그래밍 2014. 6. 24. 14:31
    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
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    class Turtle{
    public:
        int stat;
        int x;
        int y;
     
        Turtle();
        int stat_re(int );
        int move(int );
    };
     
    Turtle::Turtle(){
        x = 0;
        y = 0;
        stat = 1;
    }
     
    int Turtle::stat_re(int Case)
    {
        stat += Case;
        if (stat < 1)
            stat = 4;
        else if (stat > 4)
            stat = 1;
        return 0;
    }
     
    int Turtle::move(int fb)
    {
        switch (stat)
        {
        case 1 :
            y += fb;
            break;
        case 2 :
            x += fb;
            break;
        case 3 :
            y -= fb;
            break;
        case 4 : 
            x -= fb;
            break;
        }
        return 0;
    }
     
    int check(char c, Turtle &T)
    {
        if (c == 'F')
            T.move(1);
        else if (c == 'B')
            T.move(-1);
        else if (c == 'R')
            T.stat_re(1);
        else if (c == 'L')
            T.stat_re(-1);
     
        return 0;
    }
     
    int update(int &x, int &y, Turtle &T)
    {
        if (abs(T.x) > abs(x))
            x = T.x;
        if (abs(T.y) > abs(y))
            y = T.y;
     
        return 0;
    }
     
     
    int main(int argc, int * argv[])
    {
        Turtle T = Turtle();
        string move;
        int l_x = 0, l_y = 0;
        
        cin >> move;
     
        int ml = move.length();
     
        for (int i = 0; i < ml; i++)
        {
            check(move.at(i), T);
            update(l_x, l_y, T);
        }
     
        cout << l_x*l_y << endl;
     
    }


    소스를 깔끔하게 짜는법을 생각해봐야할듯

    2nd Week - 2011 ACM-ICPC Asia Regional - Daejeon - Problem L.pdf


    '공부 > 프로그래밍' 카테고리의 다른 글

    Golang 변수 초기화 + func init  (0) 2015.06.15
    Rust - cargo를 이용한 rust 프로젝트 관리 (Cargo 사용법)  (0) 2015.02.21
    Turtle  (0) 2014.06.24
    이진탐색  (0) 2014.05.20
    dll injector 관련 자료  (0) 2014.05.19
    folder access api  (0) 2014.05.14

    댓글 0

Designed by Tistory.