코딩테스트/Python

[Baekjoon] 1013. Contact

swwho 2025. 4. 11. 14:47
728x90
반응형

🔗 Problem Link

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


❔Thinking

  • 주어진 패턴 "(100+1+ | 01)+"과 일치하는 문자열인 경우 "YES", 아니라면 "NO"를 반환한다.

💻Solution

import re
import sys
input = sys.stdin.readline

T = int(input().rstrip())
r = re.compile("(100+1+|01)+")
for _ in range(T):
    pattern = input().rstrip()
    if r.fullmatch(pattern):
        print('YES')
    else:
        print('NO')

🗝️keypoint

  1. re로 compile하면, r을 해당 패턴을 검색하는데 활용할 수 있다. 
  2. +는 해당 문자가 하나 이상 반복됨을, |는 or 역할을 한다.
  3. fullmatch는 문자열 전체가 해당 패턴을 만족할 때 객체를 반환한다. 만족하지 않을 경우 None을 반환한다.
 

정규 표현식

1. 정규 표현식(regex)특정한 규칙의 문자열 집합을 표현하는 데 사용하는 형식 언어2. 정규 표현식 모듈import restring = "aaaa,b,c,e,d"a = re.search('a+', string)print(a.span())3. 정규 표현식 문법표현식의미표현

swwho.tistory.com