#include <string>
#include <vector>
#include <memory.h>
using namespace std;
int visited[6][6];
string map[6][6];
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
bool check=true;
void dfs(int x,int y,int dist){
visited[x][y]=1;
if(dist>0&&dist<=2&&map[x][y]=="P"){
check=false;
return;
}
for(int i=0; i<4; i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>=0&&nx<5&&ny>=0&&ny<5){
if(!visited[nx][ny]&&map[nx][ny]!="X"){
visited[nx][ny]=1;
dfs(nx,ny,dist+1);
visited[nx][ny]=0;
}
}
}
}
vector<int> solution(vector<vector<string>> places) {
vector<int> answer;
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
for(int k=0; k<5; k++){
map[j][k]=places[i][j][k];
}
}
for(int a=0; a<5; a++){
for(int b=0; b<5; b++){
memset(visited,0,sizeof(visited));
if(!visited[a][b]&&map[a][b]=="P"){
dfs(a,b,0);
}
}
}
if(check) answer.push_back(1);
else answer.push_back(0);
check=true;
memset(map,0,sizeof(map));
}
return answer;
}
'Algorithm 🧑🏻💻 > 프로그래머스(Programmers)' 카테고리의 다른 글
[c++] 프로그래머스 - 네트워크( Level 3) (0) | 2021.10.20 |
---|---|
[c++] 프로그래머스 - 괄호 변환( Level 2, 2020 KAKAO BLIND) (0) | 2021.10.20 |
[c++] 프로그래머스 - 게임 맵 최단거리 (Level 2) (0) | 2021.10.19 |
[c++] 프로그래머스 - 같은 숫자는 싫어 (Level 1) (0) | 2021.10.19 |
[c++] 프로그래머스 - 가장 큰 수 (Level 2) (0) | 2021.10.19 |
[c++] 프로그래머스 - [1차] 뉴스 클러스터링 ( Level 2, 2018 KAKAO BLIND RECRUITMENT ) (0) | 2021.10.19 |
댓글