새소식

반응형
Algotithms

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

  • -
728x90
반응형

문제

  • 패턴은 알파벳 소문자 여러 개와 별표(*)로 이루어진 문자열이다.
  • 파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소문자로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다. 별표는 빈 문자열로 바꿀 수도 있다.
  • 예를 들어, 'abcd', 'ad', 'anestonestod'은 모두 'a*d'와 일치한다.
  • 패턴과 파일 이름이 모두 주어졌을 때 각각의 파일 이름이 패턴과 일치하는지 아닌지 구하기
  • 1 <= N <= 100

 

풀이

  • 1) * 는 빈 문자열을 포함해 임의의 문자열로 변환할 수 있다.
    re 패키지에서 이를 [a-zA-Z]* 라고 표기할 수 있으므로, 변환한다.
  • 2) 완전히 매치되는지 확인하려면 `match`가 아니라 `fullmatch`를 사용해야 한다.
    예를 들어, 아래와 같은 예시에 `match`를 사용하면 DA가 나온다.
    1
    dd
    ddd

 

import re

N = int(input())
pattern = input()
# *을 re에서의 의미로 변경
pattern = re.sub('\*', '[a-zA-Z]*', pattern)

for _ in range(N) :
    file = input()
    # 매치되는지 확인    
    print("DA") if re.fullmatch(pattern, file) else print("NE")

 

References

  • 백준 오늘의문제
반응형

'Algotithms' 카테고리의 다른 글

[백준] 1695 팰린드롬 만들기  (0) 2023.11.01
[백준] 11000 강의실 배정  (0) 2023.10.30
[백준] 2224 명제 증명  (0) 2023.10.26
[백준] 16234 인구이동  (0) 2023.10.24
[백준] 4096 지뢰찾기  (0) 2023.10.24
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.