https://www.acmicpc.net/problem/2852
문제
문제해석
1번과 2번팀이 48분의 경기동안 각 각 몇분간 이기고 있었는지 구하는 문제이다.
코드
goal = int(input())
team_one_score = 0
team_two_score = 0
team_one_time = 0
team_two_time = 0
time_score_dic = dict()
for _ in range(goal):
team, win_time = input().split()
m, s = map(int, win_time.split(":"))
time_score_dic[m * 60 + s] = int(team)
for i in range(48 * 60):
if i in time_score_dic:
if time_score_dic[i] == 1:
team_one_score += 1
else:
team_two_score += 1
if team_one_score > team_two_score:
team_one_time += 1
elif team_one_score < team_two_score:
team_two_time += 1
team_one_m = team_one_time // 60
team_one_s = team_one_time % 60
team_two_m = team_two_time // 60
team_two_s = team_two_time % 60
print("{:02d}:{:02d}".format(team_one_m, team_one_s))
print("{:02d}:{:02d}".format(team_two_m, team_two_s))
문제풀이
48분을 초로 계산하면 48 x 60이다. 이를 for문으로 구현해도 시간복잡도가 크지 않으므로 실시간으로 각 각의 팀이 이기고 있을 경우 1초를 더해주며 시간을 계산을 해준다.
'Koala - 11기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/C++] 17608번: 막대기 (0) | 2023.08.27 |
---|---|
[백준/python3] 12789번: 도키도키 간식 드리미 (0) | 2023.08.20 |
[백준/python3] 18406번 (0) | 2023.08.14 |
[백준 / C++] 1874번: 스택 수열 (0) | 2023.08.13 |
[백준/Python] 7795번: 먹을 것인가 먹힐 것인가 (0) | 2023.08.13 |