본문 바로가기
코딩테스트 준비/백준

[백준] 9996번 - 한국이 그리울 땐 서버에 접속하지 [Java]

by mwzz6 2024. 12. 6.

https://www.acmicpc.net/problem/9996

 

[백준] 9996번 - 한국이 그리울 땐 서버에 접속하지 [Java]
[백준] 9996번 - 한국이 그리울 땐 서버에 접속하지 [Java]


1.  아이디어

 

String의 startsWith, endsWith 메서드를 활용하면 간단하게 패턴이 일치하는지 확인할 수 있다.


2. 문제풀이

 

패턴 매칭을 할 때 접두사와 접미사 사이에 공백 또는 문자나 문자열이 와야 일치하는 파일 이름이어서 파일 이름이 접두사 길이와 접미사 길이의 합보다 길거나 같아야 한다는 점에만 주의하면 간단하게 해결할 수 있다.

 

ex) ab*ba 일 때 aba는 일치하지 않음


3. 코드

 

import java.io.*;
import java.util.*;

public class Main {
    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 N = Integer.parseInt(br.readLine());

        st = new StringTokenizer(br.readLine(), "*");
        String prefix = st.nextToken();
        String suffix = st.nextToken();

        for (int i = 0; i < N; i++) {
            String input = br.readLine();

            if (input.length() < prefix.length() + suffix.length()) {
                bw.write("NE\n");
            } else if (input.startsWith(prefix) && input.endsWith(suffix)) {
                bw.write("DA\n");
            } else {
                bw.write("NE\n");
            }
        }

        bw.flush();
    }
}

4. 후기