https://www.acmicpc.net/problem/2852
(입력 및 선언)
(반복문)
n개 반복
득점한 팀의 번호와 시간을 문자형 그대로 입력받는다.
득점한 시간을 콜론(:)을 기준으로 분리한다.
48분에서 득점한 시간을 뺀 값을 goal에 대입한다.
만약 1번 팀이 득점했다면,
2번 팀이 득점했다면,
- 만약 이기려고 하는 순간이면, two에 goal 값을 더한다.
- flag를 1 감소시킨다 (이제 2번 팀이 이기는 중)
- 만약 이제 비기려고 한다면, one에 one-goal 한 값을 넣어준다.
(최종 출력)
format 함수
문자열 포매팅이란 문자열을 이쁘게 만드는 방법이다.
format 함수는 중괄호 {, } 안에 포매팅을 지정하고 format 함수의 인자로 값들을 넣는다.
'{인덱스0}, {인덱스1}'.format(값0, 값1)
ex) print('{0} x {1} = {2}'.format(a, b, a * b))
n시일 때는 0n시로 출력해야 한다.
{:0>2}
- < : 왼쪽 정렬
- > : 오른쪽 정렬
- ^: 가운데 정렬
- 기호 뒤에 나오는 숫자(2)는 자릿수이다
- <, >, ^ 기호 앞에 특정 문자를 입력하면 공백 부분이 해당 문자로 채워진다.
n = int(input())
one, two = 0, 0
flag = 0
for i in range(n):
team, time = input().split()
si, bun = map(int, time.split(':'))
goal = 48*60-(si*60+bun)
if team == '1':
if flag == 0:
one += goal
flag += 1
if flag == 0 and two > 0:
two = two - goal
elif team == '2':
if flag == 0:
two += goal
flag -= 1
if flag == 0 and one > 0:
one = one - goal
print('{:0>2}:{:0>2}'.format(one//60, one%60))
print('{:0>2}:{:0>2}'.format(two//60, two%60))