300x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스
- BFS
- 브루트포스
- 킥스타트
- 알고리즘
- AI
- nlp
- google coding competition
- PYTHON
- 프로그래밍
- 코딩테스트
- 네트워크
- 동적프로그래밍
- 운영체제
- linux
- 딥러닝
- dp
- 동적 프로그래밍
- 리눅스
- 코딩
- 코딩 테스트
- 그래프
- kick start
- DFS
- 순열
- 백준
- 구글 킥스타트
- OS
- CSS
- 파이썬
Archives
- Today
- Total
오뚝이개발자
[백준 1013] Contact 본문
728x90
300x250
문제
https://www.acmicpc.net/problem/1013
나의 풀이
정규표현식을 사용하면 되는 문제이다. 약간 신경써야할 부분은 re의 match()함수가 아니라 fullmatch() 함수를 사용해야 한다는 점이다. match()의 경우 일치하는 부분문자열이 있는 경우 True를 return하지만 문제에서 요구하는 것은 문자열의 처음부터 끝까지 해당 정규표현식의 규칙을 가진 경우를 detection해야 한다. 따라서 fullmatch() 함수를 사용해 처음부터 끝까지 모두 해당 식과 일치하는 문자열을 골라 "YES"를 print해야 한다.
코드
# https://www.acmicpc.net/problem/1013
import re
T = int(input())
for _ in range(T):
a = input()
p = re.compile('(100+1+|01)+')
# p.match를 사용하면 안됨. 이 경우 처음부터 끝까지 문자열이 일치해야 하지만, p.match의 경우 부분적으로 일치하는 문자열이 있으면 True return
m = p.fullmatch(a)
if m:
print("YES")
else:
print("NO")
728x90
300x250
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 1463] 1로 만들기 (0) | 2021.10.04 |
---|---|
[백준 1259] 팰린드롬 수 (0) | 2021.09.20 |
유레카 이론 (0) | 2021.07.13 |
[백준 2252] 줄 세우기 (0) | 2021.07.04 |
[백준 1937] 욕심쟁이 판다 (0) | 2021.07.03 |
Comments