誕生日


質問する


👉 5635誕生日

解答方法

  • 人分の誕生日を文字列に変更して保存します.
    🧐 month、dayの長さが1の場合は、前に「0」を付けなければなりません.
  • をソートし、最小、最大の誕生日を出力します.
  • コード#コード#

    #include <vector>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    class Person {
        public:
        string name;
        string birthday;
    };
    
    bool compareAge(Person first, Person second) {
        return first.birthday > second.birthday;
    }
    
    string getBirthDay(int year, int month, int day) {
        string syear = to_string(year);
        string smonth = to_string(month);
        string sday = to_string(day);
        if (month < 10) {
            smonth = '0' + smonth;
        } else if (day < 10) {
            sday = '0' + sday;
        }
        return syear + smonth + sday;
    }
    
    int main() {
       int n, year, month, day;
       string name;
       vector<Person> people;
       cin >> n;
    
       for (int i=0; i<n; i++) {
           cin >> name >> day >> month >> year;
           people.push_back({name, getBirthDay(year, month, day)});
       }
    
       sort(people.begin(), people.end(), compareAge);
       cout << people[0].name  << "\n" << people[people.size()-1].name << endl;
    }