반응형
19583번: 싸이버개강총회
첫번째 줄에는 개강총회를 시작한 시간 S, 개강총회를 끝낸 시간 E, 개강총회 스트리밍을 끝낸 시간 Q가 주어진다. (00:00 ≤ S < E < Q ≤ 23:59) 각 시간은 HH:MM의 형식으로 주어진다. 두번째 줄부터는
www.acmicpc.net
코드
import sys
start,end,stream = input().split()
start = 60*int(start[:2]) + int(start[3:])
end = 60*int(end[:2]) + int(end[3:])
stream = 60*int(stream[:2]) + int(stream[3:])
att = set()
cnt = 0
while 1:
try:
time, user = sys.stdin.readline().split()
time = 60*int(time[:2]) + int(time[3:])
if time <= start:
att.add(user)
elif time >= end and time <= stream:
if user in att:
cnt += 1
att.remove(user)
except:
break
print(cnt)
설명
주어진 시간을 개강총회 시작 시간, 종료 시간, 스트리밍 종료 시간과 비교하기 위해 (60*시간 + 분) 으로 표현했다.
시작 시간보다 작거나 같은 경우 제 시간에 입장했으므로 set에 추가를 해줬다. 같은 사람이 개강 총회 시작 전에 여러 번 채팅을 치는 경우도 존재할 수 있기 때문에 set을 이용해서 중복을 방지했다.
개강총회 종료 시간과 스트리밍 종료 시간 사이에 채팅을 친 경우 set에 이름이 존재하면 cnt를 1 증가시켰고 해당 이름은 set에서 없애줬다.
반응형
'알고리즘 > 자료구조' 카테고리의 다른 글
[백준][Python] 23757번 아이들과 선물 상자 (0) | 2022.12.21 |
---|---|
[백준][Python] 12605번 단어순서 뒤집기 (0) | 2022.11.14 |
[백준][Python] 9375번 패션왕 신해빈 (0) | 2022.02.24 |
[백준][Python] 1302번 베스트셀러 (0) | 2022.02.24 |
[백준][Python] 10546번 배부른 마라토너 (0) | 2022.02.23 |
댓글