[Algorithm] ๐Ÿ๋ฐฑ์ค€ 9996 ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์šธ ๋• ์„œ๋ฒ„์— ์ ‘์†ํ•˜์ง€

HaJingJingยท2021๋…„ 6์›” 29์ผ
0

Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
85/119

0. ๋ฌธ์ œ

์„ ์˜์ด๋Š” ์ด๋ฒˆ ํ•™๊ธฐ์— ์˜ค์ŠคํŠธ๋ ˆ์ผ๋ฆฌ์•„๋กœ ๊ตํ™˜ ํ•™์ƒ์„ ๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค.

ํ˜ธ์ฃผ์— ๋„์ฐฉํ•˜๊ณ  ์ฒ˜์Œ ๋ฉฐ์น ์€ ํ•œ๊ตญ ์ƒ๊ฐ์„ ์žŠ์œผ๋ฉด์„œ ์ฆ๊ฒ๊ฒŒ ์ง€๋ƒˆ๋‹ค. ๋ช‡ ์ฃผ๊ฐ€ ์ง€๋‚˜๋‹ˆ ํ•œ๊ตญ์ด ๊ทธ๋ฆฌ์›Œ์ง€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

์„ ์˜์ด๋Š” ํ•œ๊ตญ์— ๋‘๊ณ ์˜จ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ๋ณด๋ฉด์„œ ๊ทธ๋ฆฌ์›€์„ ์žŠ๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋งค์ผ ๋ฐค, ํŒŒ์ผ ์ด๋ฆ„์„ ๋ณด๋ฉด์„œ ํŒŒ์ผ ํ•˜๋‚˜ํ•˜๋‚˜์— ์–ฝํžŒ ์‚ฌ์—ฐ์„ ๊ธฐ์–ตํ•˜๋ฉด์„œ ํ•œ๊ตญ์„ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.

์–ด๋Š ๋‚ ์ด์—ˆ๋‹ค. ํ•œ๊ตญ์— ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ง๊ฐ€์กŒ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ํŠน์ • ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ํŒŒ์ผ ์ด๋ฆ„์„ ์ ์ ˆํžˆ ์ถœ๋ ฅํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

ํŒจํ„ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ์—ฌ๋Ÿฌ ๊ฐœ์™€ ๋ณ„ํ‘œ() ํ•˜๋‚˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด๋‹ค.

ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด์— ์ผ์น˜ํ•˜๋ ค๋ฉด, ํŒจํ„ด์— ์žˆ๋Š” ๋ณ„ํ‘œ๋ฅผ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ž„์˜์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด ํŒŒ์ผ ์ด๋ฆ„๊ณผ ๊ฐ™๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋ณ„ํ‘œ๋Š” ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "abcd", "ad", "anestonestod"๋Š” ๋ชจ๋‘ ํŒจํ„ด "a
d"์™€ ์ผ์น˜ํ•œ๋‹ค. ํ•˜์ง€๋งŒ, "bcd"๋Š” ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํŒจํ„ด๊ณผ ํŒŒ์ผ ์ด๋ฆ„์ด ๋ชจ๋‘ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ฐ๊ฐ์˜ ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ํŒŒ์ผ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 100)

๋‘˜์งธ ์ค„์—๋Š” ํŒจํ„ด์ด ์ฃผ์–ด์ง„๋‹ค. ํŒจํ„ด์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๋ณ„ํ‘œ(์•„์Šคํ‚ค๊ฐ’ 42) ํ•œ ๊ฐœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š์œผ๋ฉฐ, ๋ณ„ํ‘œ๋Š” ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์— ์žˆ์ง€ ์•Š๋‹ค.

๋‹ค์Œ N๊ฐœ ์ค„์—๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด ์ฃผ์–ด์ง„๋‹ค. ํŒŒ์ผ ์ด๋ฆ„์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ
์ด N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ i๋ฒˆ์งธ ํŒŒ์ผ ์ด๋ฆ„์ด ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด "DA", ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด "NE"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ฐธ๊ณ ๋กœ, "DA"๋Š” ํฌ๋กœ์•„ํ‹ฐ์–ด์–ด๋กœ "YES"๋ฅผ, "NE"๋Š” "NO"๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

1. ์•„์ด๋””์–ด

๐Ÿ’ก "*" ๊ธฐ์ค€์œผ๋กœ ์•ž๊ณผ ๋’ค๋ฅผ ์ž๋ฆ„
๐Ÿ’ก ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๊ฐ€ pattern๊ธธ์ด-1๋ณด๋‹ค ์ž‘์œผ๋ฉด NE๋ฅผ ์ถœ๋ ฅํ•จ
๐Ÿ’ก ์•ž๊ณผ ๋’ค๋ฅผ ํŒŒ์ผ ์ด๋ฆ„๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์œผ๋ฉด DA๋ฅผ ๋‹ค๋ฅด๋ฉด NE๋ฅผ ์ถœ๋ ฅํ•จ

2. ํ•ต์‹ฌ ํ’€์ด

  1. "*" ๊ธฐ์ค€์œผ๋กœ ์•ž๊ณผ ๋’ค๋ฅผ ์ž๋ฆ„
int starIdx = pattern.indexOf('*');
String pFront = pattern.substring(0,starIdx);
String pBack = pattern.substring(starIdx+1);
  1. ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๊ฐ€ pattern๊ธธ์ด-1๋ณด๋‹ค ์ž‘์œผ๋ฉด NE๋ฅผ ์ถœ๋ ฅํ•จ
if(file.length() < pattern.length()-1) {
	System.out.println("NE");
	continue;
}
  1. ์•ž๊ณผ ๋’ค๋ฅผ ํŒŒ์ผ ์ด๋ฆ„๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฐ™์œผ๋ฉด DA๋ฅผ ๋‹ค๋ฅด๋ฉด NE๋ฅผ ์ถœ๋ ฅํ•จ

String fFront = file.substring(0, pFront.length());
String fBack = file.substring(file.length()-pBack.length());
			
if(pFront.equals(fFront) && pBack.equals(fBack))
	System.out.println("DA");
else
	System.out.println("NE");
			

3. ์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Imple_8 {
	 public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		
		String pattern = br.readLine().trim();
		
		int starIdx = pattern.indexOf('*');
		String pFront = pattern.substring(0,starIdx);
		String pBack = pattern.substring(starIdx+1);
		
		for(int j=0; j<n; j++) {
			String file = br.readLine().trim();
			
			if(file.length() < pattern.length()-1) {
				System.out.println("NE");
				continue;
			}
			
			String fFront = file.substring(0, pFront.length());
			String fBack = file.substring(file.length()-pBack.length());
			
			if(pFront.equals(fFront) && pBack.equals(fBack))
				System.out.println("DA");
			else
				System.out.println("NE");
			
		}
	}

}

4. ๊ฒฐ๊ณผ

์„ฑ๊ณตโœจ

profile
๐ŸŒฑ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๐ŸŒฑ

0๊ฐœ์˜ ๋Œ“๊ธ€