😁 빅데이터 문제 풀기 & Study/- BAEKJOON 문제

[1013] Contact / 파이썬 (정규표현식)

또방91 2021. 12. 2. 12:17
728x90

문제 링크: https://www.acmicpc.net/problem/1013

 

1013번: Contact

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤

www.acmicpc.net


1차시도 실패

import re
t= int(input())

for _ in range(t):
    test=input()
    p=re.compile('(100+1+|01)+')
    
    if p.match(test): print('YES')
    else: print('NO')

match로 쓴 바람 실패가 나왔다...


정답은 ??

1
2
3
4
5
6
7
8
9
10
11
12
import re
 
t= int(input())
 
for _ in range(t):
    test=input()
    
    p=re.compile('(100+1+|01)+')
    
    #match가 아닌 fullmatch를 쓰는게 이 문제의 핵심!
    if p.fullmatch(test): print('YES')
    elseprint('NO')    
cs

💯 풀이 과정

1) 정규표현식이 고맙게도 문제에 주어져 있다. '(100+1+|01)+'

2) 그럼 컴파일을 이용해 찾으면 된다.

3) match가 아닌 fullmatch로 찾아야하는 이유는 테스트케이스가 위에 표현식으로만 구성이 된 완벽일치 테스트여야하기 때문이다.


😎오늘의 한줄평: 정규표현식을 더 풀어보쟈

 

 

 

 

728x90