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')
else: print('NO')
|
cs |
💯 풀이 과정
1) 정규표현식이 고맙게도 문제에 주어져 있다. '(100+1+|01)+'
2) 그럼 컴파일을 이용해 찾으면 된다.
3) match가 아닌 fullmatch로 찾아야하는 이유는 테스트케이스가 위에 표현식으로만 구성이 된 완벽일치 테스트여야하기 때문이다.
😎오늘의 한줄평: 정규표현식을 더 풀어보쟈
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
[1543] 문서 검색 / 파이썬 (정규표현식 findall) (0) | 2021.12.02 |
---|---|
[1264] 모음의 개수 / 파이썬 (2가지 방법 정규표현식 findall & for반복문) (0) | 2021.12.02 |
[2331] 분해합 / 파이썬 (이렇게 무식하게 하나하나 대입하는거라고?) (0) | 2021.11.30 |
[10845] 큐 / 파이썬 (deque 사용하기) (0) | 2021.11.29 |
[15649] N과 M (1) / 파이썬 (순열 라이브러리) (0) | 2021.11.28 |