반응형
https://programmers.co.kr/learn/courses/30/lessons/49994
지나갔던 경로들을 기억해주었습니다.
#include <string>
using namespace std;
bool visit[11][11][11][11] = {false};
int dx[] = {-1,1,0,0};
int dy[] = {0,0,-1,1};
int dir[26];
char d[] = "UDLR";
int solution(string dirs) {
int answer = 0, x = 5, y = 5;
for(int i=0;i<4;i++) dir[d[i]-'A'] = i;
for(int i=0; i<dirs.size(); i++) {
int nx = x + dx[dir[dirs[i]-'A']];
int ny = y + dy[dir[dirs[i]-'A']];
if(nx < 0 || ny < 0 || nx >= 11 || ny >= 11) continue;
if(!visit[x][y][nx][ny]) answer++;
visit[x][y][nx][ny] = visit[nx][ny][x][y] = true;
x = nx;
y = ny;
}
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
프로그래머스 : 멀쩡한 사각형 (0) | 2021.11.13 |
---|---|
프로그래머스 : 124 나라의 숫자 (0) | 2021.11.13 |
프로그래머스 : 블록 이동하기 (0) | 2021.11.13 |
프로그래머스 : 야근 지수 (0) | 2021.11.13 |
프로그래머스 : 줄 서는 방법 (0) | 2021.11.13 |