[Python] 백준 1013번: Contact

Jonie Kwon·2022년 4월 13일
0
post-custom-banner

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

풀이

  • re 모듈을 이용하여 정규식 패턴을 compile하고 패턴에 해당하는 문자열이 있는지 확인
  • 정규식은 그루핑 ()을 이용하고 패턴 확인은 re.fullmatch 함수를 이용하였다.
  • re.fullmatch(pattern, string)는 매칭된 문자가 있을경우 match object를 반환하고 없을 경우 None을 반환한다.

참조: wikidocs - 그루핑, match

코드

import re
t = int(input())
def solution(compile, s):
    a = re.fullmatch('(100+1+|01)+', s)
    if a == None:
        return "NO"
    else:
        return "YES"
for i in range(t):
    print(solution(input()))

코드 (수정)

import re
import sys
input = sys.stdin.readline

t = int(input())
c = re.compile('(100+1+|01)+')
for i in range(t):
    a = c.fullmatch(input().rstrip())
    if a == None:
        print("NO")
    else:
        print("YES")

같은 정규표현식을 매번 compile하는 것은 불필요하므로 조금 수정하였다. 220ms-->200ms
input도 변경했다. 200ms --> 124ms

sys.stdin.readline() 사용 할 때는 rstrip()을 잊지 말자..^^;;

profile
메모하는 습관
post-custom-banner

0개의 댓글