오뚝이개발자

[백준 1013] Contact 본문

코딩 테스트/백준

[백준 1013] Contact

땅어 2021. 9. 20. 15:26
728x90
300x250

 

 

문제


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

 

1013번: Contact

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

www.acmicpc.net

 

 

나의 풀이


정규표현식을 사용하면 되는 문제이다. 약간 신경써야할 부분은 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