728x90
반응형
https://www.acmicpc.net/problem/1013
1013번: Contact
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 전파를 표현하는, { 0, 1 }만으로 이루어진 문자열이 공백 없이 주어진다. 문자열 길이는 (1 ≤
www.acmicpc.net
<풀이>
반례
101 -> NO
1000000000000000 -> NO
100000000000001111111111111 -> YES
100111001 -> YES
<전체 코드>
def algo(num):
fail = False
l = len(num)
i = 0
first = False
last = True
while i < l:
if first:
if num[i] == '0':
pass
elif num[i] == '1':
first = False
else:
if num[i] == '0':
if i+1 == l:
fail = True
break
if num[i+1] == '0':
fail = True
break
else:
i = i+1
last = True
else:
if last:
if i+1 == l:
fail = True
break
if num[i+1] == '1':
fail = True
break
else:
if i+2 == l:
fail = True
break
if num[i+2] == '0':
last = False
first = True
else:
fail = True
break
else:
if i != 0:
if num[i-1] == '1':
if i+1 != l and num[i+1] == '0':
first = True
else:
fail = True
break
i = i+1
if first:
fail = True
if fail:
return "NO"
else:
return "YES"
n = int(input())
for i in range(n):
print(algo(input()))
728x90
반응형
'# Coding > # 백준' 카테고리의 다른 글
[백준 / 9251] LCS - Python (0) | 2021.12.14 |
---|---|
[백준 / 1034] 램프 - Python (0) | 2021.12.10 |
[백준 / 10974] 모든 순열 - Python (0) | 2021.07.26 |
[백준 / 13305] 주유소 - Python (0) | 2021.07.23 |
[백준 / 11779] 최소비용 구하기 2 - Python (0) | 2021.07.23 |