[白俊]2671号潜水艦を識別
質問リンク
https://www.acmicpc.net/problem/2671
に答える検査が必要なパターンを関数別に再帰 に分割する.
ポストは怖くて、幸いにも を解いた.
コード#コード#
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()
Reference
この問題について([白俊]2671号潜水艦を識別), 我々は、より多くの情報をここで見つけました https://velog.io/@leehj8896/백준-2671번-잠수함식별テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol