이런식으로 일단 도식화 하면서 이해는 했으나 구현은 못함.
시 분 뭐 이런식으로 단위 주어지면은 하나의 단위로 통일을 해라
prev라는 개념을 사용을 할 것이다 이 문제 에서는
내코드를 보면은
분 -> 초 작업까지만 했고, prev개념 사용을 못했고
출력할 때 format을 맞추는 부분이 안되어있다.
개선 해야할 부분이 format맞추는 부분과
prev개념을 제대로 이해를 해서 문제에 적용을 시켜야할 거같다.
여기 인자에 01 넣으면 1나오고
10넣으면 10나옴.
즉 01, 02, 03 이런 값에서 0 제외됨.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#define endl "\n"
int n, o, A, B, asum, bsum;
string s, preV;
string Print(int a)
{
string d = "00" + to_string(a / 60);
string e = "00" + to_string(a % 60);
return d.substr(d.size() - 2, 2) + ":" + e.substr(e.size() - 2, 2);
}
int CTS(string a)
{
return atoi(a.substr(0, 2).c_str()) * 60 + atoi(a.substr(3, 2).c_str());
}
void go(int& sum, string a)
{
sum += (CTS(a) - CTS(preV));
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> o >> s;
if (A > B) go(asum, s);
else if (B > A) go(bsum, s);
o == 1 ? ++A : ++B;
preV = s;
}
if (A > B) go(asum, "48:00");
else if (B > A) go(bsum, "48:00");
cout << Print(asum) << endl;
cout << Print(bsum) << endl;
return 0;
}