Problem 2678 Number of Senior Citizens
Table of Contents
Problem Statement
Link - Problem 2678
Question
You are given a 0-indexed array of strings details
. Each element of details
provides information about a given passenger compressed into a string of length 15
. The system is such that:
- The first ten characters consist of the phone number of passengers.
- The next character denotes the gender of the person.
- The following two characters are used to indicate the age of the person.
- The last two characters determine the seat allotted to that person.
Return the number of passengers who are strictly more than 60 years old.
Example 1
Input: details = ["7868190130M7522","5303914400F9211","9273338290F4010"]
Output: 2
Explanation: The passengers at indices 0, 1, and 2 have ages 75, 92, and 40.
Thus, there are 2 people who are over 60 years old.
Example 2
Input: details = ["1313579440F2036","2921522980M5644"]
Output: 0
Explanation: None of the passengers are older than 60.
Constraints
- `1 <= details.length <= 100`
- `details[i].length == 15`
- `details[i] consists of digits from '0' to '9'.`
- `details[i][10] is either 'M' or 'F' or 'O'.`
- The phone numbers and seat numbers of the passengers are distinct.
Solution
class Solution {
public:
int countSeniors(vector<string>& details) {
int count=0;
int age;
for(string &it:details){
age = (it[11]-'0')*10+(it[12]-'0');
if(age>60)
count++;
}
return count;
}
};
Complexity Analysis
| Algorithm | Time Complexity | Space Complexity |
| --------- | --------------- | ---------------- |
| Traversal | O(n) | O(1) |
Explanation
1. Intuition
- We just need to iterate over the array and for each string check if the age is greater than 60.
- If it is, we increment the count.
- Finally, we return the count.
2. Implementation
- We initialize a variable `count` to store the number of senior citizens.
- We iterate over the array.
- For each string, we extract the age from the string.
- We check if the age is greater than 60.
- If it is, we increment the count.
- Finally, we return the count.