시간지기


이 연습 문제는 주로 시간 간격을 다루지만, 일반적인 시간 연습 문제로도 쓸 수 있어요.

이야기

Sarah는 시간 기록원이에요. 사실 이 분야에서 최고예요. 아이들이 시간 기록원이 무슨 일을 하냐고 물으면, Sarah는 흰 모래가 가득 든 병을 보여 주는 걸 좋아해요. 있잖아요, 하고 그녀가 말해요. "저는 시간을 안전하게 지키고 있어요!"

그녀의 실제 업무는 그렇게 낭만적이지는 않지만, 그녀에게는 여전히 아주 흥미롭고 보람 있는 일이에요. 그녀는 시간 측정 장비가 가득한 가방을 들고 전 세계 스포츠 대회를 돌아다니며 모든 선수의 기록을 측정해요.

이 연습 문제에서는 Sarah가 만들어 달라고 부탁한 새 시간 측정 소프트웨어를 위해 몇 가지 함수를 작성해요. 실수는 있을 수 없어요. 나중에 소프트웨어에서 Bug가 발견되면 다음 세계 기록이 무효가 될 수도 있으니까요! 이 책임을 질 준비가 되었나요?

참고 사항

시간 측정 하드웨어에서 오는 데이터는 보통 타임스탬프예요(시간, 날짜와 시간, 심지어 시간대까지 포함하기도 해요). 정밀도가 아주 높아서 보통 1밀리초, 때로는 100마이크로초까지도 돼요. 모든 하드웨어 기기에는 내부 시계가 있고, 이 시계는 다른 모든 기기와 동기화되어야 해요.

과제

다음은 시간 기록원 연습 문제에 어울리는 예시 과제예요:

  • 시작 시간과 종료 시간의 차이를 구해 시간 간격을 계산해요.
  • 한 측정 기기가 다른 시간대에 있어요. 서로 다른 시간대의 두 시간 차이를 계산해요.
  • 한 측정 기기가 인터넷에 연결되어 있지 않아요. 처음 열 명의 주자에 대해서는 도우미가 기록된 시간을 전화로 읽어 줘요. 이 시간은 "10h5m19.234s" 형식으로 입력되며, 이 형식을 파싱해야 해요.
  • 조기 출발이 백업 영상 카메라에 기록되었어요. 잘못된 시작 시간에서 주어진 시간 간격을 빼서 새로운 시작 시간을 다시 계산해요.
  • 경기 중에는 엉뚱한 시간이 많이 감지돼요. 그런 "원치 않는" 시간을 모두 무시할 수 있도록, 시간 기록원은 시작 이후 특정 시간 범위에 있는 측정 기기의 시간만 받아들일 수 있어요. 예를 들어 시작 후 10분에서 30분 사이처럼요. start time(타임스탬프), from과 to(시간 간격), detection(타임스탬프)을 입력으로 받는 필터 함수를 만들어요.
  • 리더보드에 표시할 시간 간격의 출력을 "1h5m19.234s +4.843" 형식으로 만들어요. 여기서 +4.843은 선두(1위 선수)와의 차이예요.

구현

  • 아직 없음

관련 자료