[Programmers] 방문 길이

Date:

[Programmers] 방문 길이

Problem URL : 방문 길이

#include <string>
#include <map>
using namespace std;

bool visit[11][11][11][11];
map<char, int> dx;
map<char, int> dy;

bool outRange(int x, int y) {
  if(x < 0 || x > 10 || y < 0 || y > 10) {
    return true;
  }
  return false;
}

int solution(string dirs) {
    int answer = 0;
    dx['U'] = 0;
    dy['U'] = 1;
    dx['D'] = 0;
    dy['D'] = -1;
    dx['L'] = -1;
    dy['L'] = 0;
    dx['R'] = 1;
    dy['R'] = 0;
    int x = 5, y = 5;
    int size = dirs.size();
    for(int i = 0; i < size; i++) {
      char dir = dirs[i];
      int nx = x + dx[dir];
      int ny = y + dy[dir];
      if(outRange(nx,ny)) {
        continue;
      }
      if(!visit[x][y][nx][ny]) {
        answer ++;
        visit[x][y][nx][ny] = true;
        visit[nx][ny][x][y] = true;
      }
      x = nx;
      y = ny;
    }

    return answer;
}

Comments

한번에 풀어서 기분이 좋다 ㅎㅎ

댓글