728x90
1. 문제 설명
주어진 패턴과 일치하는 문자열인지 아닌지 확인하면 된다.
*을 기준으로 앞 문자열과 뒷 문자열로 나눈다.
그 후 첫 번째, 새로 입력받은 문자열이 기준 문자열에서 *을 뺀 길이보다 짧은지 확인한다.
만약 짧다면, 이는 패턴이 일치하지 않는 것이기에 NE를 출력하면 된다.
두 번째는, 앞에서 자른 기준 문자열의 앞 문자열, 뒷 문자열과 새로 입력받은 문자열이 일치하는지 확인하면 된다.
생각한 대로 구현하면 되는 쉬운 문제이다.
2. 코드
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int num=scan.nextInt();
String base=scan.next();
int start_index=base.indexOf("*");
String base_start=base.substring(0,start_index);
String base_end=base.substring(start_index+1);
int base_start_length=base_start.length();
int base_end_length=base_end.length();
//*을 뺀 string 길이.
int base_length=base.length()-1;
for(int i=0;i<num;i++){
String temp=scan.next();
int temp_length=temp.length();
if(temp_length<base_length){
System.out.println("NE");
}else{
String temp_start=temp.substring(0,base_start_length);
String temp_end=temp.substring(temp_length-base_end_length);
if(temp_start.equals(base_start)&&temp_end.equals(base_end))
System.out.println("DA");
else
System.out.println("NE");
}
}
scan.close();
return;
}
}
728x90
'알고리즘' 카테고리의 다른 글
[JAVA]백준 4641번: Doubles (0) | 2020.11.14 |
---|---|
[JAVA]백준 1057번: 토너먼트 (0) | 2020.11.14 |
[JAVA]백준 1058번: 친구 (0) | 2020.11.04 |
[JAVA]백준 1145번: 적어도 대부분의 배수 (0) | 2020.11.04 |
[JAVA]백준 10819번: 차이를 최대로 (0) | 2020.11.03 |