https://programmers.co.kr/learn/courses/30/lessons/17676
def solution(lines):
section_list = get_section_list(lines)
ans = get_max_count(lines, section_list)
return ans
def get_section_list(lines):
section_list = []
for i in range(len(lines)):
_, t1, t2 = lines[i].split()
end = int(convert(t1) * 1000)
start = end - int(float(t2[:-1]) * 1000) + 1
section_list.append((start - 999, start))
section_list.append((end, end + 999))
lines[i] = (start, end)
return section_list
def convert(text):
h, m, s = map(float, text.split(':'))
m += h * 60
s += m * 60
return s
def get_max_count(lines, section_list):
count_list = [0] * len(section_list)
for i in range(len(section_list)):
section = section_list[i]
for s, e in lines:
if (s <= section[0] <= e) or (section[0] <= s <= section[1]):
count_list[i] += 1
return max(count_list)