결국 나를 글쟁이로 만든 것은 고난의 경험이었다. 글의 재료는 행복한 시간보다 불행한 시간, 고난의 시간에 만들어지는 경우가 더 많다. '재수 없는' 시간, 일생에서 가장 재수 없는 저점의 시간에 만들어진다. 사람을 믿었다가 한순간에 똥통에 빠진 그 재수 없는 시간이 나를 독서가로 만들었고, 고되고 힘들었던 고난이 나를 글쟁이로 만들었다.
- 고도원 윤인숙의《고도원 정신》중에서 -
* 누구에게나 물어보면 자신의 인생을 한 권의 책으로 쓸 수 있다고들 합니다. 그중에서도 행복했던 시간보다는 힘들고 어려웠던 시간이 더 기억나고 오래 남습니다. 그런 힘든 순간이 우리 삶을 바꾸는 터닝 포인트가 되기 때문입니다. 삶의 여정에서 걸려 넘어진 부분이야말로 신이 우리에게 주신 커다란 보물의 끝자락인지도 모릅니다. 그래서 우리 삶의 모든 것은 버릴 것이 하나도 없습니다.
진정으로 성공한 사람들은 거만하게 행동할 의향이 전혀 없다. 자신이 남보다 잘난 것이 아니라 운이 더 좋을 뿐이라고 여기기 때문이다. 이들은 자기 직무가 관리라고 생각한다. 관리란 모든 사람의 최대 이익을 위해 자신의 영향력을 행사하는 책무를 말한다.
-데이비드 호킨스의 《데이비드 호킨스의 365일 명상》 중에서 -
* 성공한 사람들은 잘 압니다. 하늘이 도왔다는 것을. 그것을 흔히 '운'이라 부르기도 합니다. 물론 노력은 기본입니다. 노력과 더불어 운이 뒤따라야 빛을 볼 수 있습니다. 성공을 지속시키는 비결은 남들도 자신처럼 성공하게 돕는 것입니다. 횃불에 횃불을 붙이면 불길이 커집니다. 자기 횃불 하나를 혼자서 움켜쥐고 있으면 곧 꺼지고 맙니다. 운도 그렇습니다.
""" [백준] 1013번 Contact - PYTHON https://www.acmicpc.net/problem/1013 문제 “무한히 넓은 저 우주에 인류만이 홀로 존재한다면, 그건 정말 슬픈 일이 아닐까요” 푸에르토리코 아레시보에 위치한 아레시보 전파망원경(Arecibo radio telescope)은 수십 년째 존재하지 않을 지도 모르는 외계 문명으로부터의 전파를 수신하기 위해 밤하늘을 바라보고 있다. 이 망원경이 수집한 전파 속에서 자연적으로 발생하기 힘든 패턴들을 찾아내어, 그것을 증거로 외계 문명의 존재 여부를 가리려는 노력은 줄곧 이어져왔지만 아직까지도 그러한 패턴은 발견되지 않았다. 한국 천문학계의 자존심 김동혁 박사는 국내 기술로 이러한 탐사를 진행하기 위하여 다음의 전파 표기를 표준으로 삼았다. 전파의 기본 단위는 { 0 , 1 } 두 가지로 구성되어있으며, x+ ( ) 는 임의의 개수(최소 1개) x의 반복으로 이루어진 전파의 집합을 나타낸다. (xyx)+ ( ) 는 괄호 내의 xyx의 반복으로 이루어진 전파의 집합을 뜻한다. 아래는 이해를 돕기 위한 예제이다. 1+ = { 1, 11, 111, 1111, 11111, … } 10+ = { 10, 100, 1000, 10000, 100000, … } (01)+ = { 01, 0101, 010101, 01010101, 0101010101, … } (1001)+ = { 1001, 10011001, 100110011001, … } 10+11 = { 1011, 10011, 100011, 1000011, 10000011, … } (10+1)+ = { 101, 1001, 10001, 1011001, 1001101, 100011011000001, … } 반복을 의미하는 + 외에도 or 를 의미하는 | 기호가 있다. { x | y } 는 x 혹은 y 를 의미하는 것으로, { 0+ | 1+ } 는 { 0 , 1 , 00 , 11 , 000 , 111 , … } 의 집합을 의미한다. 아래는 두 기호를 복합적으로 사용한 예이다. (100 | 11)+ = { 100 , 11 , 10011 , 11100 , 1110011100 , 100111111100100, … } 최근 김동혁 박사는 아레시보 전파망원경에서 star Vega(직녀성) 으로부터 수신한 전파 기록의 일부를 조사하여 그 전파들의 패턴을 분석하여 아래와 같이 기록하였다. (100+1+ | 01)+ 김동혁 박사는 다양한 전파 기록 중에서 위의 패턴을 지니는 전파를 가려내는 프로그램을 필요로 한다. 이를 수행할 수 있는 프로그램을 작성하라. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤ N ≤ 200)의 범위를 갖는다. 출력 각 테스트 케이스에 대해 주어진 전파가 문제에서 제시한 패턴이면 “YES”를 그렇지 않은 경우는 “NO”를 출력한다. 출력 문자열은 모두 대문자로 구성되어 있다.
예제 입력 3 10010111 011000100110001 0110001011001 예제 출력 NO NO YES
>> BOJ\1013_Contact.py 3 10010111 NO 011000100110001 NO 0110001011001 YES
re 모듈 : 정규식 엔진에 대한 인터페이스를 제공 compile 메소드: 정규식 패턴 입력 fullmatch 메소드: 입력된 패턴과 문자열이 남는 부분 없이 완벽하게 일치하는지 검사. 일치하지 않으면 None. """
import re
import sys
input = sys.stdin.readline
p = re.compile('(100+1+|01)+')
for i in range(int(input())):
s = input().strip()
if p.fullmatch(s):
print("YES")
else:
print("NO")