Algorithm(CodeTree, Python)/완전탐색3
[코드트리 기준을 새로 설정하여 완전탐색] 독서실의 거리두기 5 Python
kurooru
2022. 12. 31. 10:57
# n 입력
n = int(input())
# study_cafe 입력
study_cafe = input()
# 함수들
# get_max_dist(curr_study_cafe)
def get_max_dist(curr_study_cafe):
# people_pos
people_pos = []
# curr_study_cafe 돌면서
for i in range(n):
# 사람이 있으면
if curr_study_cafe[i]:
# people_pos에 기록
people_pos.append(i)
# people_num -> 현재 독서실에 있는 사람의 수
people_num = len(people_pos)
# curr_min_dist
curr_min_dist = sys.maxsize
for i in range(people_num - 1):
# curr_dist
curr_dist = people_pos[i+1] - people_pos[i]
# curr_min_dist update
curr_min_dist = min(curr_min_dist, curr_dist)
# 반환
return curr_min_dist
# simulate(curr_idx)
def simulate(curr_idx):
# 리스트로 관리 -> 원소를 바꿔 주기 위함
temp_study_cafe = []
# 현재 study_cafe의 모든 원소를
for i in range(n):
# temp_study_cafe에 넣어줌
temp_study_cafe.append(int(study_cafe[i]))
# curr_idx에 인원 배치
temp_study_cafe[curr_idx] = 1
# get_max_dist 반환
return get_max_dist(temp_study_cafe)
# 설계
import sys
# max_dist
max_dist = 0
# 완전 탐색 시작 -> 모든 빈 곳에 한명씩 넣어봄
for i in range(n):
# 비어있는 곳이라면,
if study_cafe[i] == '0':
# max_dist update
max_dist = max(max_dist, simulate(i))
# 출력
print(max_dist)