>백엔드 개발 >C++ >특정 회의 시간과 교차하는 간격 수를 계산합니다.

특정 회의 시간과 교차하는 간격 수를 계산합니다.

王林
王林앞으로
2023-08-31 20:13:04726검색

특정 회의 시간과 교차하는 간격 수를 계산합니다.

문제 설명

12시간의 시간 간격을 나타내는 시작 및 종료 시간 쌍을 포함하는 2차원 배열이 제공되었습니다. 동시에 12시간 단위로 표현되는 문자열 str도 제공됩니다. str로 표시되는 시간을 포함하는 총 간격 수를 찾아야 합니다.

예제 예

들어가세요

으아악

출력

으아악

Explanation

의 중국어 번역은

Explanation

입니다.

시간 "2:30:AM"은 이전 세 시간 간격과 교차합니다.

들어가세요

으아악

출력

으아악

Explanation

의 중국어 번역은

Explanation

입니다.

시간 "11:30:PM"은 배열에 지정된 시간 간격과 교차하지 않습니다.

방법 1

이 방법에서는 시간을 24시간제로 변환합니다. 그런 다음 비교를 통해 주어진 시간과 교차하는 총 시간 간격 수를 계산합니다. 또한 substr() 메서드를 사용하여 부분 문자열을 가져오고 stoi() 메서드를 사용하여 문자열을 정수로 변환합니다.

알고리즘

  • 1단계 - 시간을 24시간 형식으로 변환하는 ConvertTime() 함수를 정의합니다.

  • 1.1단계 − replacement() 메서드를 사용하여 세 번째 위치의 콜론을 빈 문자열로 바꿉니다.

  • 1.2단계 − 주어진 문자열에서 시간을 나타내는 첫 번째와 두 번째 문자를 가져온 후 첫 번째 숫자에 10을 더하고 두 번째 숫자를 곱하여 시간으로 변환합니다.

  • 1.3단계 - 'time_24' 변수를 0으로 초기화합니다.

  • 1.4단계 − 시간을 24시간 형식으로 변환하려면 두 가지 상황을 처리해야 합니다. 첫 번째 사례는 오전에 발생하고 두 번째 사례는 오후에 발생합니다.

  • 1.4.1단계 - 문자열의 5번째 문자가 'A'이면 시간은 AM입니다. 시간이 AM이고 시가 12인 경우 오전 12시를 00:00시로 간주하므로 문자열에서 분만 추출됩니다. 그렇지 않으면 시간 문자열을 정수 값으로 변환합니다.

  • 1.4.2단계 - 문자열의 다섯 번째 문자가 'P'이면 시간은 PM입니다. 시간 문자열을 추출하여 정수로 변환합니다. 또한, 시간이 12가 아닌 경우 'time_24' 변수에 1200이 추가됩니다.

  • 2단계 - ConvertTime() 함수는 다음 형식으로 시간을 반환합니다.

    • 12:00:AM = 0000

    • 12:58:AM = 0059

    • 11:32:AM = 1132

    • 11:32:PM = 1200 + 1132 = 2332

    • 04:56:PM = 1200 + 456 = 1656

    • 문자열의 5번째 문자가 'A'이면 시간은 AM입니다. 시간이 AM이고 시가 12인 경우 오전 12시를 00:00시로 간주하므로 문자열에서 분만 추출됩니다. 그렇지 않으면 시간 문자열을 정수 값으로 변환합니다.

  • 3단계 - 주어진 시간 문자열을 24시간 형식으로 변환합니다.

  • 4단계 - for 루프를 사용하여 시간 간격 배열을 반복하고 각 시간 문자열을 24시간 형식으로 변환합니다.

  • 5단계 - 그동안 주어진 시간 문자열이 현재 간격 사이에 있는지 계속 확인하세요. 그렇다면 'res' 개수를 1만큼 늘립니다.

  • 6단계 - 'res' 변수의 값을 반환합니다.

Example

은 다음과 같이 번역됩니다.

Example

으아악

출력

으아악
  • 시간 복잡도 - 시간 간격 배열을 반복하므로 O(N)입니다.

  • 공간 복잡성 − O(1) 왜냐하면 일정한 공간을 사용하지 않기 때문입니다.

위 문제를 해결할 때 사용자는 주로 시간을 24시간 형식으로 변환한 다음 일반적인 비교를 수행해야 합니다.

위 내용은 특정 회의 시간과 교차하는 간격 수를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
이전 기사:끔찍한 숫자다음 기사:끔찍한 숫자