on
[프로그래머스][JAVA] 거리두기 확인하기 (BFS, 완전탐색)
[프로그래머스][JAVA] 거리두기 확인하기 (BFS, 완전탐색)
import java.util. * ;
class Solution {
public int [] solution( String [][] places) {
List < Integer > list = new ArrayList < > ();
Loop1 :
for ( String [] place : places){
char [][] waitArr = new char [ 10 ][ 10 ];
for ( int i = 2 ; i < 7 ; i + + ){
char [] input = place[i - 2 ].toCharArray();
for ( int j = 2 ; j < 7 ; j + + ){
waitArr[i][j] = input[j - 2 ];
}
}
// for(int i=0; i<10; i++){
// for(int j=0; j<10; j++){
// System.out.print(waitArr[i][j]);
// }
// System.out.println();
// }
// System.out.println();
for ( int i = 2 ; i < 7 ; i + + ){
for ( int j = 2 ; j < 7 ; j + + ){
if (waitArr[i][j] = = 'P' ){
if (waitArr[i + 1 ][j] = = 'P' // 열 옆자리 사람
| | waitArr[i][j + 1 ] = = 'P' // 행 옆자리 사람
| | (waitArr[i + 1 ][j] = = 'O' & & waitArr[i + 2 ][j] = = 'P' ) //2칸 아랫자리 사람
| | (waitArr[i][j + 1 ] = = 'O' & & waitArr[i][j + 2 ] = = 'P' ) //2칸 옆자리 사람
| | (waitArr[i + 1 ][j] = = 'O' & & waitArr[i + 1 ][j + 1 ] = = 'P' ) //대각선 사람
| | (waitArr[i][j + 1 ] = = 'O' & & waitArr[i + 1 ][j + 1 ] = = 'P' )
| | (waitArr[i][j - 1 ] = = 'O' & & waitArr[i + 1 ][j - 1 ] = = 'P' )
| | (waitArr[i + 1 ][j] = = 'O' & & waitArr[i + 1 ][j - 1 ] = = 'P' )
){
list. add ( 0 );
continue Loop1;
}
}
}
}
list. add ( 1 );
}
int [] answer = new int [list.size()];
for ( int i = 0 ; i < list.size(); i + + ){
answer[i] = list.get(i);
}
return answer;
}
}
from http://aig2029.tistory.com/269 by ccl(A) rewrite - 2021-09-11 12:01:11