문제 풀이/백준
[백준] 9996번. 한국이 그리울 땐 서버에 접속하지(JAVA)
27200
2025. 3. 27. 13:21
문제
https://www.acmicpc.net/problem/9996
풀이(5분)
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String pattern = br.readLine();
String[] s = pattern.split("\\*");
String head = s[0];
String tail = s[1];
for(int i = 0; i < n; i++){
String input = br.readLine();
if(input.length() < head.length() + tail.length()){ // 길이가 짧을 때
System.out.println("NE");
continue;
}
if(input.substring(0,head.length()).equals(head)){ // 앞의 문자가 head와 일치할 때
if(input.substring(input.length() - tail.length(),input.length()).equals(tail)){ // 뒤의 문자가 tail과 일치할 때
System.out.println("DA"); // 정답 출력
continue;
}
}
System.out.println("NE"); // 아닌 경우 전부 NE 출력
}
}
}
문제 풀이 전략
문장을 입력받은 후 *를 기준으로 head와 tail로 나눈다.
1. 문장의 길이가 먼저 만족시킬 수 있는지 검사한다.
2. head와 동일한지 본다.
3. tail과 동일한지 본다.
4. 맞다면 DA를 그렇지 않은 경우엔 전부 NE를 출력한다.