본문 바로가기
백준알고리즘/문자열

(Python/🥈3)백준알고리즘2852번: NBA 농구

by windy7271 2023. 8. 2.
728x90
반응형

 

문제 바로가기 

 

https://www.acmicpc.net/problem/2852
NBA 농구

문제:

동혁이는 NBA 농구 경기를 즐겨 본다. 동혁이는 골이 들어갈 때 마다 골이 들어간 시간과 팀을 적는 이상한 취미를 가지고 있다. 농구 경기는 정확히 48분동안 진행된다. 각 팀이 몇 분동안 이기고 있었는지 출력하는 프로그램을 작성하시오.

입력:

첫째 줄에 골이 들어간 횟수 N(1<=N<=100)이 주어진다. 둘째 줄부터 N개의 줄에 득점 정보가 주어진다. 득점 정보는 득점한 팀의 번호와 득점한 시간으로 이루어져 있다. 팀 번호는 1 또는 2이다. 득점한 시간은 MM:SS(분:초) 형식이며, 분과 초가 한자리 일 경우 첫째자리가 0이다. 분은 0보다 크거나 같고, 47보다 작거나 같으며, 초는 0보다 크거나 같고, 59보다 작거나 같다. 득점 시간이 겹치는 경우는 없다.

 

출력:

첫째 줄에 1번 팀이 이기고 있던 시간, 둘째 줄에 2번 팀이 이기고 있던 시간을 출력한다. 시간은 입력과 같은 형식(MM:SS)으로 출력한다.

 

풀이:

import heapq
import sys
sys.stdin = open('/Users/song/Desktop/Python/Python/h.txt', 'r')

N = int(input())  
team_win = 0  
res_A = 0  
res_B = 0  

for i in range(N):  
    team, time = input().split(" ")  
    M, S = map(int, time.split(":")) 

    if team == '1':  # 팀 A가 득점한 경우
        if team_win == 0:  # 들어오면서 이제 팀 A가 이기고 있음을 나타냄
            res_A += 48 * 60 - (60 * M + S)  # 현재 득점 시간 이후에도 팀 A가 이기고 있기 때문에 누적 시간에 추가
        team_win += 1  # 팀 A가 이기고 있음을 나타냄
        if team_win == 0:  # 이제 무승부로 될 것이므로 팀 B가 이기고 있던 시간을 처리
            if res_B > 0:  # 팀 B가 이기고 있던 시간이 있으면
                res_B = res_B - (48 * 60 - (60 * M + S))  # 득점 시간 이후에도 팀 B가 이기고 있었기 때문에 누적 시간에서 제거

    else:  # 팀 B가 득점한 경우
        if team_win == 0:  
            res_B += 48 * 60 - (60 * M + S)  
        team_win -= 1  
        if team_win == 0:  # 이제 무승부로 될 것이므로 팀 A가 이기고 있던 시간을 처리.
            if res_A > 0:  # 팀 A가 이기고 있던 시간이 있으면
                res_A = res_A - (48 * 60 - (60 * M + S))  # 득점 시간 이후에도 팀 A가 이기고 있었기 때문에 누적 시간에서 제거합

print(str(res_A // 60).zfill(2) + ":" + str(res_A % 60).zfill(2))  
print(str(res_B // 60).zfill(2) + ":" + str(res_B % 60).zfill(2)) 

 

은근 어려웠다?

 

만약에 1팀이 이기기 시작하면

경기시간 48분 에서 지금 시작한 시간을 빼준 값을 일단 더해준다.

 

그러다가 2번이 들어오면서 비기게 되면

 

 48분에서 2번이 들어오시간을 뺀 값을 위에 값에서 빼주면된다.

 

예를들면

 

1 ,10 분

2, 20 분

 

1번은 38분동안 이길 수 있다.

2번이 20분에 들어오면서 48 - 20 = 28

1번 시간 - 2번 = 10분

 

10분동안 이기고 있었던게 되는거다.

 

 

 

반응형

댓글