25.03.18 Resolve
Intuition비교는 실제 시간으로계산은 15분 단위로 끊은 시간으로Approach문자열 비교가 어려우니 분으로 치환비교는 실제 시간으로 한다.계산은 15분 단위로 끊은 값으로 한다-1이 발생하는 예외는 그냥 max 구문으로 잡아주자Complexity
Time complexity: O
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

비교는 실제 시간으로

계산은 15분 단위로 끊은 시간으로

# Approach
<!-- Describe your approach to solving the problem. -->

문자열 비교가 어려우니 분으로 치환

비교는 실제 시간으로 한다.

계산은 15분 단위로 끊은 값으로 한다

-1이 발생하는 예외는 그냥 max 구문으로 잡아주자

# Complexity
- Time complexity: O(1)
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity: O(1)
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```cpp []
class Solution {
public:
  int numberOfRounds(const string& lit, const string& lot) {
    int a = toCeilTime(lit);
    int b = toFloorTime(lot);

    return to_m(lot) - to_m(lit) < 0 ? b - a + 96 : max(b - a, 0);
  }

  int to_m(const string& s) {
    int h = (s[0] - '0') * 10 + (s[1] - '0');
    int m = (s[3] - '0') * 10 + (s[4] - '0');
    return h * 60 + m;
  }

  int toCeilTime(const string& s) {
    int h = (s[0] - '0') * 10 + (s[1] - '0');
    int m = (s[3] - '0') * 10 + (s[4] - '0');
    return h * 4 + ceil(m / 15.0f);
  }

  int toFloorTime(const string& s) {
    int h = (s[0] - '0') * 10 + (s[1] - '0');
    int m = (s[3] - '0') * 10 + (s[4] - '0');
    return h * 4 + (m / 15);
  }
};
```
['C++']