[프로그래머스] 추석 트래픽

HL·2021년 2월 2일
0

프로그래머스

목록 보기
2/44

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/17676

문제 설명

  • 로그 데이터 리스트가 주어진다
    • 응답 완료시간, 응답 완료에 걸린 시간
  • 1초동안 처리하는 요청 개수의 최댓값 출력

풀이

  • 체크해야하는 구간들을 구한다
    • (시작시간-1 ~ 시작시간), (완료시간 ~ 완료시간+1)
  • 구간들을 돌면서 해당 구간마다 처리되는 요청의 개수를 카운트

코드

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)
profile
Frontend 개발자입니다.

0개의 댓글

관련 채용 정보