🔗 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
- re로 compile하면, r을 해당 패턴을 검색하는데 활용할 수 있다.
- +는 해당 문자가 하나 이상 반복됨을, |는 or 역할을 한다.
- fullmatch는 문자열 전체가 해당 패턴을 만족할 때 객체를 반환한다. 만족하지 않을 경우 None을 반환한다.
정규 표현식
1. 정규 표현식(regex)특정한 규칙의 문자열 집합을 표현하는 데 사용하는 형식 언어2. 정규 표현식 모듈import restring = "aaaa,b,c,e,d"a = re.search('a+', string)print(a.span())3. 정규 표현식 문법표현식의미표현
swwho.tistory.com
'코딩테스트 > Python' 카테고리의 다른 글
[LeetCode] 643. Maximum Average Subarray I (0) | 2025.04.10 |
---|---|
[LeetCode] 283. Move Zeroes (0) | 2025.04.07 |
[Programmers] Level 2. 아날로그 시계 (0) | 2025.03.26 |
[LeetCode] 443. String Compression (0) | 2025.03.26 |
[LeetCode] 238. Product of Array Except Self (0) | 2025.03.24 |