Notice
Recent Posts
문제 풀이 및 개발 공간
[백준] 6983번 Where's Waldorf? (silver 2 본문
import java.io.*;
import java.util.*;
public class Main{
static int[] numx={1,1,1,0,0,-1,-1,-1};
static int[] numy={0,-1,1,1,-1,0,1,-1};
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int t=Integer.valueOf(br.readLine());
for(int i=0; i<t; i++){
st=new StringTokenizer(br.readLine());
int n=Integer.valueOf(st.nextToken());
int m=Integer.valueOf(st.nextToken());
int[][] map=new int[n+1][m+1];
for(int j=1; j<=n; j++){
String a=br.readLine().toLowerCase();
for(int k=1; k<=m; k++){
map[j][k]=a.charAt(k-1)-'a';
}
}
int q=Integer.valueOf(br.readLine());
for(int j=0; j<q; j++){
boolean isIn=false;
String quiz=br.readLine().toLowerCase();
for(int y=1; y<=n; y++){
for(int x=1; x<=m; x++){
if(map[y][x]==quiz.charAt(0)-'a'){
for(int nth=0; nth<8; nth++){
int tx=x;
int ty=y;
for(int how=1; how<quiz.length(); how++){
tx+=numx[nth];
ty+=numy[nth];
if(tx<1 || tx>m || ty<1 || ty>n || map[ty][tx]!=quiz.charAt(how)-'a'){
break;
}
if(how==quiz.length()-1){
isIn=true;
break;
}
}
if(isIn){
break;
}
}
if(isIn){
bw.write(y+" "+x+"\n");
x=m+1;
y=n+1;
}
}
}
}
bw.write(isIn ? "" : n+" "+m+"\n");
}
bw.write("\n");
}
bw.flush();
}
}
'백준공부 > java' 카테고리의 다른 글
[백준] 2512번 예산 (silver 2 (0) | 2023.09.22 |
---|---|
[백준] 6603번 로또 (silver 2 (0) | 2023.09.22 |
[백준] 4422번 Crypt Kicker 2 (gold 4 (0) | 2023.09.22 |
[백준] 2206번 벽 부수고 이동하기 (gold 3 (0) | 2023.09.21 |
[백준] 6328번 Erdos Numbers (gold 3 (0) | 2023.09.19 |