아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

단순 크론 명세

면접 대비

시간 제한4초메모리 제한1024 MB

요약
시, 분, 초 필드를 크론 형식으로 파싱한 뒤, 적어도 하나의 작업이 시작되는 서로 다른 초의 개수와 전체 작업 시작 횟수를 센다.
난이도

보통10점 중 4점

유형
구현, 시뮬레이션, 배열, 문자열
정답자
아직 제출이 없습니다

문제

크론 명세는 Linux에서 특정 작업을 언제 반복 실행할지 지정할 때 쓴다. 이 문제에서는 하루 안에서 작업을 언제 실행해야 하는지 정의하는 단순 크론 명세를 다룬다. 단순 크론 명세는 공백으로 구분된 세 개의 토큰으로 이루어진다:

hours minutes seconds

이는 작업이 실행될 시, 분, 초를 지정한다. 시 값은 0-23, 분과 초 값은 0-59이다.

각 토큰은 정수 값 하나, 값 범위(대시 ‘-’로 구분된 두 값), 여러 값 또는 값 범위를 쉼표로 나열한 목록, 별표(‘*’) 중 하나로 이루어진다. 값 범위는 낮은 값과 높은 값을 포함하여 그 사이의 모든 정수 값을 나타낸다. 별표는 가능한 모든 값을 나타내는 특별한 토큰이다. 쉼표로 나열한 목록에 지정된 값들은 서로 겹치지 않아야 한다.

예를 들어, 다음과 같은 명세는:

* 30 20,25,30-33

작업이 매시, 30분에, 그리고 20, 25, 30, 31, 32, 33초에 실행됨을 뜻하며, 하루에 총 24 × 1 × 6 = 144번 실행된다.

단순 크론 명세 목록이 주어졌을 때 두 가지를 구하라. 첫째, 하루 중 적어도 하나의 작업이 시작되는 초의 개수, 둘째, 하루 동안의 총 작업 시작 횟수. 작업 하나가 하루에 24번 시작되면 작업 시작 24번으로 센다.

입력

첫째 줄에 정수 nn (1≤n≤1001 \le n \le 100)이 주어진다. 이는 뒤따르는 단순 크론 명세의 개수이다.

다음 nn개 줄 각각에는 세 문자열 hh, mm, ss가 있다. 이는 단순 크론 명세의 시, 분, 초 명세이다. 각 hh, mm, ss는 별표 하나(‘*’)이거나, 하나 이상의 값 또는 값 범위(‘-’로 구분된 두 값)를 쉼표로 나열한 목록이다. 값과 범위는 적절한 한계(시는 0에서 23, 분과 초는 0에서 59) 안에 있으며 서로 겹치지 않는다. 모든 범위 명세는 서로 다른 두 값으로 이루어지며 작은 값이 먼저 온다. 쉼표로 나열한 목록에 지정된 모든 값은 엄격히 증가하는 순서이다. 전체가 올바른 단순 크론 명세임이 보장된다. 줄에 있는 공백은 hh와 mm 사이, mm과 ss 사이의 공백 하나씩뿐이다.

출력

공백으로 구분된 두 정수를 출력한다. 첫째는 24시간 하루 중 적어도 하나의 작업이 시작되는 초의 개수이고, 둘째는 총 작업 시작 횟수이다.

예제1

  1. 예제 1

    입력
    2
    * 30 20,25,30-33
    9,15 30 *
    
    예상 출력
    252 264