시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Back_9996 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String pattern = br.readLine();
String[] patterns = pattern.split("\\*");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
String tmp = br.readLine();
if(tmp.length()<pattern.length()-1) {
sb.append("NE\n");
continue;
}
if(tmp.substring(0, patterns[0].length()).equals(patterns[0])&&
tmp.substring(tmp.length()-patterns[1].length()).equals(patterns[1])) {
sb.append("DA\n");
}else {
sb.append("NE\n");
}
}
System.out.println(sb);
}
}
※ 내 생각
이 문제는 문자열을 이용하는 문제입니다.
이 문제를 해결하기 위해서 "*"를 기준으로 나눠줍니다.
"*"같은 특수 문자를 split에서 사용하기 위해서는 "\\*"를 사용합니다.
비교하기에 앞서 pattern길이의 -1은 주어진 문자열 보다 크면 안되기 때문에 예외처리를 해줍니다.
각각의 문자열에 대해서 앞과 뒤에 대한 비교를 해줍니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_14235 크리스마스 선물 (0) | 2021.11.17 |
---|---|
백준_8979 올림픽(자바) / 구현 (0) | 2021.11.16 |
백준_1092 배(자바) / 그리디 (0) | 2021.11.14 |
백준_2616 소형기관차(자바) / 누적합 (0) | 2021.11.13 |
백준_2578 빙고(자바) / 구현 (0) | 2021.11.11 |