https://www.acmicpc.net/problem/2671
def solution():
string = input()
if check_total(string):
print('SUBMARINE')
else:
print('NOISE')
def check_total(string):
# 쪼개서 체크
for i in range(1, len(string)):
s1 = string[:i]
s2 = string[i:]
if s1 and (check_left(s1) or check_right(s1)):
if check_total(s2):
return True
# 전체만 체크
if check_left(string) or check_right(string):
return True
return False
def check_left(string):
# 첫 100 체크
if len(string) < 3:
return False
if string[:3] != '100':
return False
# 연속 0 체크
i = 3
while True:
if i == len(string):
return False
if string[i] != '0':
break
i += 1
# 첫 1 체크
if i == len(string):
return False
if string[i] != '1':
return False
# 연속 1 체크
while True:
if i == len(string):
return True
if string[i] != '1':
return False
i += 1
def check_right(string):
if string == '01':
return True
return False
solution()