백준 2852 NBA ❌

CJB_ny·2023년 1월 18일
0

백준

목록 보기
57/104
post-thumbnail

NBA

이런식으로 일단 도식화 하면서 이해는 했으나 구현은 못함.

시 분 뭐 이런식으로 단위 주어지면은 하나의 단위로 통일을 해라

prev라는 개념을 사용을 할 것이다 이 문제 에서는


내코드를 보면은

분 -> 초 작업까지만 했고, prev개념 사용을 못했고
출력할 때 format을 맞추는 부분이 안되어있다.


개선 해야할 부분이 format맞추는 부분과

prev개념을 제대로 이해를 해서 문제에 적용을 시켜야할 거같다.

atoi ❗

여기 인자에 01 넣으면 1나오고

10넣으면 10나옴.

즉 01, 02, 03 이런 값에서 0 제외됨.

cpp 코드

#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;
}
profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글